2009-02-27 104 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