我正在将Rails应用程序从2升级到3。我有一个Mysql表,其数据如下:
½†x 12†Rebar
14’ LVL 1-3/4" X 11-7/8"
当运行Rails 2时,这些名称看起来很正常(½” x 12” Rebar
和14’ LVL 1-3/4" X 11-7/8"
),但是当我运行Rails 3分支时,Ruby使用的是与数据库相同的形式。
我猜Rails 2会忽略另一个表的编码。不知何故我需要强制编码,而不是转换它。我通过使用<string>.encode().force_encoding()
修复了一个字符串的这个问题,但是我更愿意修复数据中的根本原因。
发布于 2015-04-15 19:57:19
最后,我识别了所有正在分解的字符,并将它们替换为Find-替换,然后将数据重新导入到utf-8表中。出于一时兴起,我试图在活动环境中使用这些数据,而活动环境显示也以类似的方式中断,尽管修改后的数据在开发中看起来很棒。
Diffing旧数据和新数据揭示了数据是如何混乱的:
½â€<U+009D> x 12â€<U+009D> Rebar
变成了
½\" x 12\" Rebar
我猜Rails 2所使用的编码不是是UTF-8。
https://stackoverflow.com/questions/29565916
复制相似问题