Comment puis-je traiter les données afin d'éviter MySQL incorrecte “chaîne de valeur” de l'erreur?

Je suis en train d'utiliser un Râteau de la tâche de procéder à la migration des données existantes à partir de MS Access vers MySQL. Je travaille sur Windows XP, à l'aide de Ruby 1.8.6.

J'ai l'encodage pour les Rails de définir comme "utf8" dans database.yml.

Aussi, le jeu de caractères par défaut pour MySQL est utf8.

99% des données sont à venir dans les beaux, mais chaque maintenant et puis je vais obtenir une valeur de la colonne qui me donne une erreur à quelque chose comme ceci:

Mysql::Error: Incorrect string value: '\x92 Comm...' for column 'name' 
  at row 1: 
  INSERT INTO `organizations` ( [...] ) 
  VALUES('Lawyers’ Committee', [...] )

Il semble que la chose qui donne MySQL difficulté est l'apostrophe immédiatement après le "s" dans le mot "Avocats".

Voici une autre...

Mysql::Error: Incorrect string value: '\x99 aoc' for column 'department' 
  at row 1: 
  INSERT INTO `addresses` 
[...]
  'TRInfo™ aoc'
[....]

Dirait que c'est d'étouffement sur les "TM" après "TRInfo".

Est-il de toute Ruby ou Rails méthode que je peux courir les données grâce à purifier de tout les personnages que MySQL va s'étouffer?

Idéalement, il serait bien de les remplacer par le goût des caractères -- remplacer l'apostrophe avec un seul devis et le symbole TM avec la chaîne "(TM)".

Ou, si j'arrivais à configurer MySQL pour stocker ces personnages est sans erreurs qui serait trop grand.

OriginalL'auteur Ethan | 2009-06-04