2009-02-27 99 views
4

當我序列包含UTF8字符串的哈希,像這樣:Ruby on Rails的:序列化UTF8問題

poll.variants = {0 => 'тест',1 => '-тест-',2 => 'test # test "тест'} 

到一個ActiveRecord場,產生的字段包含:

--- 
0: !binary | 
    0YLQtdGB0YI= 

1: !binary | 
    LdGC0LXRgdGCLQ== 

2: !binary | 
    dGVzdCAjIHRlc3QgItGC0LXRgdGC 

utf8的琴絃由於某些原因被視爲二進制和base64編碼。該字段的排序規則是utf8_general_ci,我有點失望。

有什麼辦法讓ActiveRecord:序列化人類可讀的yaml到字段?

回答

5

有沒有什麼辦法,使ActiveRecord的 :連載人類可讀YAML到 場?

號及其Base64編碼,以便編碼的任意文本(在任何編碼)下降到最低共同denonimator,然後將其安全地通過線路和/或存儲在不接受UTF-8的數據存儲發送數據。

+0

哦,這是合理的。感謝您的解釋。 – 2009-02-27 16:22:58