PHPとMySQLの組み合わせにおける文字化け問題

2010年4月30日

経験的に、ほとんどの問題はMySQL側にある。

試しにコンソールでmysqlに接続し、

show variables like 'char%’;

として見れば、自分の望むコードなのかどうか?が分かる。

my.cnfがいじれればラッキーなので、

[mysqld]
の項目に

default-character-set = utf8
skip-character-set-client-handshake

を付け加えてMySQLを再起動。
skip-character-set-client-handshakeはクライアントからのアクセス時も、サーバ側の文字コードをセットするものらしい。
PHPからの接続もこの「クライアント」に該当するので、これを忘れると文字化けは解消されない点に注意。