phpMyAdminにてUTF-8(Unicode)の日本語が文字化けして読めない不具合を解決
一昔前のLinuxでデータベースを扱う文字コードはHTMLを含めてEUC文字コードが一般的だったが
最近ではすっかりUTF-8文字コードが標準になってしまいました。
特に問題がない限り、現段階の携帯サイトを除けば
HTML、CSS、Javascript、XML、データベースなどUTF-8で統一したほうがよさそうですね。
UTF-8を使用する事が前提になったのはいいけどいざ使用してみると
意外にサーバ環境の設定に左右される事に気づかされます。
ここでは文字化けしない為の、初期設定をまとめてみました。
UTF-8にて、PHP上では文字化けを起こさずにデータ処理が行えるのに、
何故かphpMyAdmin上では日本語が文字化けしてしまいます。
これは、MySQLの設定で正しく文字コードが設定されていない為です。
下記の環境で正しい文字コードを設定しましょう。
・PHP5.xx
・MySQL 5.1xx
・Linux Fedora8
MySQLの設定ですが /etc/my.cnf ファイルを編集します。
各項目に文字コードを設定します。
[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
default-character-set = utf8
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
設定ファイルをリロードして、繁栄させればOKです。
後は正しくPHP側でUTF-8に変換されたSQLを発行してやれば大丈夫です。
■HTMLがShift_JIS
mb_convert_variables(“UTF-8”, “SJIS-win”, $sql);
■HTMLがEUC
mb_convert_variables(“UTF-8”, “EUC-win”, $sql);
■HTMLがUTF-8
そのままでOK