2012-08-06 27 views
1

MySQL,UTF-8和Rails 3應用程序的又一編碼問題。使用MySQL和Rails 3編碼utf-8字符串不起作用

我們最近將代碼從Rails 2遷移到了Rails 3.我們使用MySQL和mysql2 gem。問題是,在我們以前的數據庫中,我們的內容包含了一些utf-8字符而不是它們相應的字符,例如\xC3\x9F用於模糊的o。

我們將這些字符串作爲必須進入網站的某些字符串的YAML序列化。問題是,當來自數據庫的記錄加載到ActiveRecord對象中時,這是通過奇怪的字符完成的,因此在Web上顯示出真正令人討厭的東西。例如,ß顯示爲Ã等。

我玩了一下Rails 3的新編碼魔法,嘗試了各種force_encodingencode方法的組合,但沒有運氣。

爲了記錄在案,MySQL是開始與這兩條線:

character-set-server=utf8 
collation-server=utf8_unicode_ci 

對什麼是我們做錯了,爲什麼YAML不讀正確的轉義字符,我們還能有什麼辦法來解決任何想法問題?

乾杯

回答