WEBシステム開発・デザイン制作などすべての作業を一貫してご提供しております。(大阪・東京近辺)

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