以前、無邪気にも WordPressの漢字コードをEUC-JPからUTF-8にしたよ などと書いていたが、UTF-8になっていなかったことが判明。以下、自分用メモ
- MySQLの4.1以降ではDBサーバー、 データベース、テーブル、そしてクライアントがそれぞれ文字コードを持っている
- 確認方法は接続してから、statusコマンドもしくは”show variables like ‘character%’;”
- クライアントの漢字コードの指定は必ず行う。方法は、オプションで–default-character-set=utf8もしくは接続後に”set names utf8″を発行する。mysqldumpも必ず–default-character-setを指定すること。
- WordPressなど歴史的な事情でlatin1のデータベースにUTF-8で入れているケースが多いが、このデータはあくまでlatin1なので–default-character-setオプションなどでutf8に設定したクライアントから見ることは出来ず文字化けする。DBがlatin1ならlatin1をutf8ならutf8をちゃんと指定すること
- mysqldumpの出力はSET NAMESで漢字コードを指定するので油断するな
- データベースの漢字コードは”show create database [DB名]“、テーブルの漢字コードは”show create table [テーブル名]“で確認できる
- くわしくは、くまくまーの人の記事を参考に
- 疲れた…
よろしければ、コメントをどうぞ。トラックバックはこちら
このエントリーのコメントの購読
次のHTMLタグが使えます。: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">