MySQLの文字コード設定の履歴

文字コードをUTF8にする

とにかくこれをやっとけばOK。
/etc/my.cnfに以下の記述を追加

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
...
[mysql]
default-character-set = utf8


latin1でデータ入力して、日本語が全部文字化けする!

http://railspress.matake.jp/mysqlに既に存在するデータベース内部の文字コード を参考にしてUTF-8化に成功。一時はもうダメかと思った…。

#-c -nオプションつけるとうまくいかなかった
mysqldump -u username -p -–default-character-set=latin1 -d mydatabase> database.dump

# Eオプションつけるとダメだった。
nkf -w database.dump> database.utf.dump

sed 's/latin1/utf8/g' database.utf.dump> database.utf.dump


昔書いたやつ


MySQL4.1でも5.0でもmy.ini/my.cnfでdefault-character-set=utf8を設定しまくってるのに、phpMyAdminでマルチバイトが使えない。


以上を参照すると「skip-character-set-client-handshake」オプションを入れるとあら不思議、文字化けなくなるよと書いてるのに、むしろ今まで文字化けしなかったところまで化けた。

なーかおかしいと思いながらとりあえず入力すると、今入力したやつは文字化けせずに表示されるではないか!

そう、ようするに今までUTF-8で保存してるとばっかり思ってたのに全然違うコードで保存されてたのね…。UTF-8→謎のコード→UTF-8っていう、変換がなされてたのね。これはショックだわ。