Я пытаюсь использовать задачу Rake для переноса некоторых устаревших данных из MS Access в MySQL. Я работаю над Windows XP, используя Ruby 1.8.6.
У меня есть кодировка для Rails, установленная как «utf8» в database.yml.
Кроме того, набор символов по умолчанию для MySQL — utf8.
99% данных поступают нормально, но время от времени я получаю значение столбца, которое дает мне примерно такую ошибку:
Mysql::Error: Incorrect string value: '\x92 Comm...' for column 'name'
at row 1:
INSERT INTO `organizations` ( [...] )
VALUES('Lawyers’ Committee', [...] )
Похоже, проблема с MySQL связана с апострофом сразу после буквы «s» в слове «Юристы».
Вот еще один...
Mysql::Error: Incorrect string value: '\x99 aoc' for column 'department'
at row 1:
INSERT INTO `addresses`
[...]
'TRInfo™ aoc'
[....]
Похоже, он задыхается от «TM» после «TRInfo».
Есть ли какой-нибудь метод Ruby или Rails, с помощью которого я могу запустить данные, чтобы очистить их от любых символов, которые MySQL задохнется?
В идеале было бы здорово заменить их более привлекательными символами — заменить апостроф одинарной кавычкой, а символ TM строкой «(TM)».
Или, если бы я мог каким-то образом настроить MySQL для хранения этих символов как есть без ошибок, это тоже было бы здорово.