reponの勉強メモ

主に勉強したことのメモです。

mysqlがうまくいかない

sqliteのデータをmysqlにサーバをまたいで移したのだが、文字コードがおかしいと怒られる……

全部カラムごとにutf-8に直さないといけないのか……直してもダメ。


調べると、

[Ruby1.9 on Rails] マルチバイト文字列でエラー : incompatible character encodings: UTF-8 and ASCII-8BIT – KumanBlog
どうやらMySQL/Rubyruby1.9の「M17N」に対応していない模様。
おかげて、データベースから取り出した文字列は全て「ASCII-8BIT」になってしまいます。


調べてみたところ解決方法は2通り発見。

① MySQL/Rubyではなく、M17Nに対応しているRuby/MySQLを入れる (ややこしい)
② Rails上で「force_encoding(“UTF-8″)」で無理やり「UTF-8」に変更する。

とのこと。


どちらも「require 'mysql'」で呼び出すので、mysqlのgemのほうを削除したら、問題なく動いた……と思ったら、他の命令がまったくダメになったよ!