MySQL、UTF-8 和 Rails 3 应用程序的另一个编码问题。
我们最近将代码从 Rails 2 迁移到 Rails 3。我们使用 MySQL 和mysql2
gem。问题是,在我们的旧数据库中,我们的内容包含一些 utf-8 字符而不是它们相应的 htmlentities,例如\xC3\x9F
带有分词的 o。
我们将这些字符串作为必须进入网站的某些字符串的 YAML 序列化。问题是当数据库中的记录被加载到 ActiveRecord 对象中时,这是用奇怪的字符完成的,因此在网络上显示非常讨厌。例如,ß
显示为Ã
等。
我尝试了 Rails 3 的新编码魔法,尝试了各种组合force_encoding
和encode
方法,但没有运气。
作为记录,mysql 是用这两行启动的:
character-set-server=utf8
collation-server=utf8_unicode_ci
关于我们做错了什么,为什么 YAML 没有正确读取那些转义字符以及我们可以做些什么来解决这个问题的任何想法?
干杯