私はRakeタスクを使用して、MS AccessからMySQLにいくつかのレガシーデータを移行しようとしています。私はWindows XPでRuby 1.8.6を使って作業しています。データを処理して、MySQLの「不正な文字列値」エラーを回避する方法はありますか?
私はdatabase.yml
に "utf8"として設定されたRailsのエンコードを持っています。
また、MySQLのデフォルトの文字セットはutf8です。
Mysql::Error: Incorrect string value: '\x92 Comm...' for column 'name'
at row 1:
INSERT INTO `organizations` ([...])
VALUES('Lawyers’ Committee', [...])
それは与えている事あるかのように見えます:データは罰金に来ているが、すべての今して、私は私にこのようなエラーに何かを与える列の値を取得しますの
99% MySQLの問題は、 "弁護士"という単語の "s"の直後のアポストロフィです。
は、ここでは "TM" をのどに詰まらているよう
Mysql::Error: Incorrect string value: '\x99 aoc' for column 'department'
at row 1:
INSERT INTO `addresses`
[...]
'TRInfo™ aoc'
[....]
は "TRInfo" の後に見える...別の一つです。
MySQLを脅かす文字を浄化するためにデータを実行できるRubyまたはRailsメソッドはありますか?
理想的には、アポストロフィーを一重引用符で置き換え、TMシンボルを文字列「(TM)」で置き換えると、より美味しい文字に置き換えることが理想的です。
また、私は何らかの形でエラーを起こすことなくその文字を保存するようにMySQLを設定することもできます。
このソリューションは、OPの質問に "何か方法はありますか?" – Gary