phpMyAdminの文字化け解消

※以前別の場所で書いた文章を備忘的に書き記しておきます。

【投稿年月日】2007-05-21 【ジャンル】PHP/MySQL

 ローカル環境のphpMyAdminの文字化けが、ようやく解消されました。今まで何度となく、my.cnfやphp.iniの設定を変更したり、phpMyAdminディレクトリに.htaccessを設置したり、いろいろやったけれども全く効果なし。諦めていたところに、下記ページを見つけました。

MySQL 4.1.x な環境で phpMyAdmin を EUC-JP で使う方法

 おかげで文字化けが解消されました。感謝感謝。

 以下、備忘メモ。
 「phpMyAdmin/libraries/database_interface.lib.php」の「function PMA_DBI_postConnect」全部をコメントアウトして、以下のソースを書き加える。
function PMA_DBI_postConnect($link, $is_controluser = false) {
require_once('./libraries/charset_conversion.lib.php');
}

 ちなみに、「phpMyAdmin/libraries/database_interface.lib.php」の書き換え前、phpMyAdminのトップページに表示されていた
MySQL の文字セット: UTF-8 Unicode
MySQL 接続照合順序: utf8_unicode_ci
は、書き換え後に表示されなくなりました。特に「MySQL 接続照合順序」は意味がよく分からなかったので、表示されないことが嬉しかったりもします。(問題ないといいんですけど…)

 また、「SHOW VARIABLES LIKE "char%"」ですが、「phpMyAdmin/libraries/database_interface.lib.php」の書き換え前と書き換え後で以下のように変わりました。

●書き換え前:

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_set_client … latin1
character_set_connection … latin1
character_set_database … utf8
character_set_filesystem … binary
character_set_results … latin1
character_set_server … utf8
character_set_system … utf8


 今のところ不都合はありませんが、文字コードの扱い(特にマルチバイト)って難しいですね。

【参考】(※いわゆるWin版「XAMPP」で構成)

【追記】

 「サーバ移転にまつわるエトセトラ(主にMySQL5の文字化け対策)」で記した通り、phpMyAdminのコードを書き換えることなく文字化けが解消されました。なぜ解消されたか、今一つ分かっていないのですが…。(2008-03-27)

EDIUNET | PHP/MySQL | 独り言 | 提供サービス | JavaScript