2010-05-21 43 views
1

我有一個使用utf-8運行的rails應用程序。它使用一個mysql數據庫,所有表都使用mysql的默認字符集和排序規則(即latin1)。因此,latin1表包含utf-8數據。當然,這並不好,但我並不真的對它感興趣。一切工作正常,因爲連接編碼也是latin1,因此mysql不會在字符集之間進行轉換。rails,mysql charsets&encoding:binary

只有一個問題:我需要一個表中的UTF-8全文索引:

mysql> show create table autocompletephrases; 

... AUTO_INCREMENT=310095 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 

但是:我不希望在我的Rails應用程序之間的字符集轉換。因此,我想知道如果我能設置配置/ database.yml的

production: 
    adapter: mysql 
>>>> encoding: binary 
    ... 

這只是調用SET NAMES連接到MySQL時,「二進制」。它看起來像它適用於我的情況,因爲我猜它會強制mysql在字符集之間不轉換(mySQL docs)。有沒有人知道這樣做的問題?任何副作用?

或者您有其他建議嗎?但我想避免將我的整個數據庫轉換爲utf-8。

非常感謝! Benjamin

+0

'我有一輛車。方形輪子,但它對我來說似乎沒問題。只有一個問題:我想突襲。任何建議?避免唯一正確的解決方案的任何明智的理由? – 2010-05-21 13:27:47

回答

0

我覺得有一個令人信服的理由來轉換,而不是介紹一些將暫時解決您的問題,直到您最終需要在未來轉換。

我想通過現在轉換來拯救自己未來的痛苦。