MySQLの日本語文字化け対策

MySQL

MySQLを使用するアプリケーションで日本語の文字化けが発生する場合、MySQLとアプリケーションの文字コードが一致していないことが多いです。
解決策の一つとして、MySQLサーバーとMySQLクライアントで同じ文字コードを使うようにして、文字コード自動変換機能を使わないようにする方法があります。

MySQLの設定ファイルmy.cnfを以下のように変更すると、解決できることが多いようです。

4.1系

 

MySQLとアプリケーションの文字コードを明示的に設定する。
文字コード名は実際に使う文字コードに置き換えてください。(utf8, sjis等)

 [mysqld]
 character-set-server=ujis
 init-connect=SET NAMES ujis

5.0系

アプリケーションでMySQLからデータを取得するときに、文字コードの自動変換を行わないようにする。

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

MySQLの日本語環境の詳細については下記リンクを参照してください。
http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_40
http://itpro.nikkeibp.co.jp/article/COLUMN/20070614/274802/?P=1&ST=oss

  • mysqlで自動変換を止めても文字化けが直らなかったのですが、上記skip-character-set-client-handshakeで直りました。ありがとうございました。 — mocapapa {2009-01-09 (金) 16:42:49}
  • [mysqld]とすぐ上に書くのを書いていなくてなかなか反映されませんでした。 — ななし {2010-05-12 (水) 13:30:52}
  • skip-character-set-client-handshakeのみで文字化け直りました。感謝です。default-character-set=utf8を記述するとエラーが発生しmysqldが立ち上がりませんでした。 — なおちゃん {2012-01-15 (日) 01:40:23}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です