UTF-8이 예상되므로 레일스 오류가 발생합니다. memcached가 내 문자열을 ASCII-8BIT로 변환하고 있습니다. DB에 불필요한 히트를 방지하기 위해 심볼을 포함한 통화 데이터를 캐싱하고 있습니다. 여기memcached와 호환되지 않는 문자 인코딩
내 방법 :
def self.find_symbol(currency)
Rails.cache.fetch(currency, :expires_in => 1.week) { Currency.find_by_code(currency).symbol }
end
부분이 캐시되는이 UTF-8입니다. 이 방법에서 올 때
Currency.find_by_code(currency).symbol
그러나 ASCII-8BIT에 내가/강제하는 경우는 memcache에이 문자열을 처리하는 방법을 내가 확실 해요
"\ XE2 \ X82 XAC \"처럼 보인다 그래서 UTF로 문자열을 저장합니다 (왜 변환합니까?) 또는 꺼내면 다시 UTF로 강제 적용합니까?
머리 부분에 utf 유형을 설정 했습니까? – apneadiving
머리 부분 어디? 나는 당신이 HTML/doctype의 머리에 대해 말하지 않고 있다고 가정하고 있습니다. 이것은 ruby 1.9 오류입니다. 1.8.7에서 잘 작동했습니다. – holden
나는 HTML 부분에 대해 이야기합니다 : 나는 캐시 페이지에 문제를 인코딩하고 머리에 utf를 추가하여 해결했습니다. – apneadiving