MySQLで文字化けに出会ったら、MySQLの設定を確認するのが一番です。
いくつかある方法の中でも、直接的な方法として、hex()を使う方法を知りました。例えば、次のように「ブログ」という値を持つカラム blog_name があったら、これをhex()で変換してみればよいようです。きちんと動作している環境で、hex(‘ブログ’) とした場合の値と比較して、どうなっているかみれば、ヒントがみえてくるはず。
mysql> select blog_id, blog_name from mt_blog where blog_id=8;
+---------+-----------+
| blog_id | blog_name |
+---------+-----------+
| 8 | ブログ |
+---------+-----------+
1 row in set (0.00 sec)
+---------+-----------+
| blog_id | blog_name |
+---------+-----------+
| 8 | ブログ |
+---------+-----------+
1 row in set (0.00 sec)
mysql> select blog_id, hex(blog_name) from mt_blog where blog_id=8;
+---------+--------------------+
| blog_id | hex(blog_name) |
+---------+--------------------+
| 8 | E38396E383ADE382B0 |
+---------+--------------------+
1 row in set (0.00 sec)
mysql> select hex('ブログ');
+--------------------+
| hex('ブログ') |
+--------------------+
| E38396E383ADE382B0 |
+--------------------+
1 row in set (0.00 sec)
参考:
Mysqlの文字コード
関連書籍: