2010-12-18 25 views
1

從Rails 2.3/Ruby 1.8升級到Rails 3/Ruby 1.9後,我遇到了一個非常奇怪的現象。正如我在標題中提到的,我使用Postgres,以及pg gem 0.10.0。升級到Rails 3和Ruby 1.9和Postgres數據庫中的Unicode數據現在返回爲ASCII(潛在的bug?)

當我調用模型的字符串或包含Unicode的文本字段時,它可以正常工作,並且它們以UTF-8編碼返回。

不過,我還利用序列化哈希值的多個模型,每當我打個電話來讀取其內容(這工作完全在升級之前),我得到以下令人費解的行爲:

  1. 如果內容包含Unicode數據,則它以ASCII形式返回,並顯示爲轉義字符。
  2. 如果內容包含ASCII數據,它會以UTF-8(正確)的形式返回,並且顯示正確。

我可以簡單地將Unicode-returned-as-ASCII字符串重新編碼回UTF-8,並且一切都會正常工作。但是,這絕對是一種黑客攻擊,並不會讓我成爲一種好方法。

有沒有辦法讓序列化的UTF-8字段正確顯示?如果這是一個錯誤,有什麼想法,以及它是否已知?

回答

0
+0

不幸的是,我已經有了我的文件,我的問題隻影響序列化的模型領域。其他一切工作正常,包括源文件中的Unicode(在文件頂部有魔法註釋)以及普通模型文本和字符串字段。 – 2010-12-22 16:51:10

相關問題