MySQLで文字化けに出会ったら

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)

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の文字コード

関連書籍:


同じタグの記事: MySQL
同じカテゴリの記事: General
同じカテゴリの記事: Linux