我已经在
database.yml
中将Rails的编码设置为“utf8”。此外,MySQL的默认字符集是utf8。
99%的数据都能正常导入,但偶尔会出现一些列值会给我一个类似于以下错误的错误:
Mysql::Error: Incorrect string value: '\x92 Comm...' for column 'name'
at row 1:
INSERT INTO `organizations` ( [...] )
VALUES('Lawyers’ Committee', [...] )
看起来给MySQL带来麻烦的是单词“Lawyers”中“s”后面的撇号。
这是另一个例子...
Mysql::Error: Incorrect string value: '\x99 aoc' for column 'department'
at row 1:
INSERT INTO `addresses`
[...]
'TRInfo™ aoc'
[....]
看起来它在“TRInfo”后面的“TM”上出现了问题。
是否有任何Ruby或Rails方法可以清洁数据,以使MySQL不会出现问题?
理想情况下,最好用更易接受的字符替换它们--用单引号替换撇号,用字符串“(TM)”替换TM符号。
或者,如果我可以以某种方式配置MySQL将这些字符存储为原样而没有错误,那就太好了。