Dans ma base de données, j'ai l'entrée suivante
id | name | info
1 John Smith Çö ¿¬¼
Comme vous pouvez le constater, la colonne d'information s'affiche de manière erronée - c'est en fait du coréen. Dans Chrome, lorsque je passe l'encodage du navigateur de UTF-8 à coréen ('euc-kr', je crois), je parviens à afficher le texte comme tel :
id | name | info
1 John Smith
Je copie ensuite manuellement le texte dans les informations de la base de données et je l'enregistre, et je peux maintenant l'afficher en UTF-8, sans changer l'encodage de mon navigateur.
Génial. Maintenant, j'aimerais faire la même chose avec Rails, et non pas manuellement. Donc, en commençant par l'entrée originale, je vais dans la console et je tape :
require 'iconv'
u = User.find(1)
info = u.info
new_info = Iconv.iconv('euc-kr','UTF-8', info)
u.update_attribute('info', new_info)
Cependant, je me retrouve avec quelque chose qui ressemble à ce qui suit \x{A2AF}\x{A8FA}\x{A1C6} \x{A2A5}\x{A8A2}
dans la base de données, et non .
J'ai une compréhension très basique de l'unicode et de l'encodage.
Quelqu'un peut-il expliquer ce qui se passe ici et comment contourner ce problème ? Le résultat souhaité est celui que j'ai obtenu manuellement.
Merci de votre attention !