2008年6月6日金曜日

Ruby1.8+MySQL5.1+PhpMyAdmin2.11=文字化けもじばけあーもじばけばけ

3日悩みました。
PHPMyAdminでUTF8なデータをMYSQLに書き込むと正常に表示されるのに、Rubyからデータを書き込むと、PHPMyAdmin上ではギリシャ語みたいのが表示される。
データベースのテーブルはちゃんとutf8_general_ciだし、RubyのスクリプトもUTF8で作成している。MYSQLのビルドオプションもUTF8と指定しているし、characterset=ALLともしている。
mysql/rubyがMYSQLの最初のビルドオプションlaten1でビルドしていたときに、ビルドしたものだから、mysql/rubyをもう一度ビルドしなおしてみたり。
でも、rubyから読み書きする分には文字化けしない。なぜ?

ぐーぐーる先生に聞いてみてもrailsでの文字化けの記事はあるけれど、ruby単体での文字化けの話はなかなか見つからないし。同じ症状であきらめている人も多数。はて???

となかばあきらめていたとき、『railsもruby』だよな。。。
根源が同じなら。

と。

下の記事を参考にしてmy.cnfを作ってみたら
うごいたよ!!!

/etc/my.cnf

[mysqld]
skip-character-set-client-handshake

my.cnfファイルが存在すれば追記し、なければmy.confを作る。

結局。mysql5では文字のエンコーディングを接続してきたクライアントとしゃべりながら決めるけど、mysql/rubyではしゃべれないらしい。

mysql/rubyなおしてくれないかなぁ@他力本願
ruby/mysqlも直してほしい@他力本願×2

なまえも変えてほしい。
mysql/ruby -> ruby-c-mysql
ruby/mysql -> rubypure-mysql
とか。。。

tmtmさん。。おねがい☆

ご参考
http://tobysoft.net/wiki/index.php?Ruby%2FRuby%20on%20Rails%2FphpMyAdmin%A4%C7%B8%AB%A4%EB%A4%C8%CA%B8%BB%FA%B2%BD%A4%B1%A4%B9%A4%EB

FreeBSD6.3
MYSQL5.1.24
phpMyAdmin2.11.6
Ruby1.8.6

0 件のコメント: