我收到一個rails錯誤,因爲它期待UTF-8,memcached正在將我的字符串轉換爲ASCII-8BIT。我正在緩存貨幣數據,包括符號以防止不必要的點擊到數據庫。與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,看起來像「\ XE2 \ X82 \西飛」
我不能確定的memcache如何處理字符串,我是否應該/可以強制它將字符串保存爲UTF,(不知道爲什麼會將其轉換),或者當我將其拉出時將其強制還原爲UTF?
您是否在頭部設置了utf類型? – apneadiving 2011-04-23 10:04:04
頭部哪裏?我假設你不是在討論HTML /文檔類型的頭部。這是一個紅寶石1.9錯誤,在1.8.7中工作正常 – holden 2011-04-23 10:06:23
我的確談到了html部分:我對緩存頁面進行了編碼問題,並在頭部添加了utf解決了它。 – apneadiving 2011-04-23 10:07:37