文字化けを防ぐためには、サーバ(mysqld)、クライアント(mysqlコマンドまたはphpMyAdmin)、アプリケーション(PHPなど)間で文字コードを統一する必要があります。ここでは文字コードをUTF-8に統一します。
1. 現在の文字コードを確認する
mysql> show variables like 'char%'; +--------------------------+------------------------------------------------------+ | Variable_name | Value | +--------------------------+------------------------------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /Applications/XAMPP/xamppfiles/share/mysql/charsets/ | +--------------------------+------------------------------------------------------+ 8 rows in set (0.00 sec) mysql>
2. my.cnfでdefault-character-setを設定
my.cnfのclientとmysqldのそれぞれに”default-character-set=utf8”の行を追加します。
[client]
... (略) ...
default-character-set=utf8
[mysqld]
... (略) ...
default-character-set=utf8 collation-server = utf8_general_ci init-connect='set names utf8'
my.cnfを変更して保存し、mysqldを再起動します。
3. 文字コードの設定が変わったことを確認する
次のようにそれぞれの文字コードがutf8に統一されたことが確認できます。
+--------------------------+------------------------------------------------------+ | Variable_name | Value | +--------------------------+------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /Applications/XAMPP/xamppfiles/share/mysql/charsets/ | +--------------------------+------------------------------------------------------+ 8 rows in set (0.00 sec) mysql>





