質問: phpmyadmin内での文字化け サーバはさくらインターネットを利用してます。 レンタルサーバから専用サーバに移転したのですが、 専用サーバではphpmyadminで日本語データの文字化けが起きます。 専用サーバのphpmyadminからdb作成の際、下記の設定で行い、 mysqlの文字セット utf-8 unicode (utf8) mysqlの接続照合順序 utf8_unicode_ci db の照合順序 utf8_unicode_ci レコードをinsertする際、下記のように文字コードを指定し、 $sql=mb_convert_encoding($sql,"euc-jp","euc-jp"); execute_sql($con, $sql); 実行したら、phpmyadmin内で日本語データが文字化けしました。 サイト内で表示しているdbデータ(日本語)は文字化けしませんでした。 db の照合順序をutf8以外(ujis_japanese_ciなど)として、 dbを作った場合、レコードをinsertしたら、サイト内のdbデータも phpmyadmin内データもどちらも日本語が文字化けします。 また、レンタルサーバのphpmyadminからdbデータをエクスポートして、 専用サーバのphpmyadminからインポートした場合、 読み込むdbデータファイルの文字コードをutf-8にしなければ、 phpmyadmin内で日本語データが文字化けしてしまいます。 ただ、utf-8にしてインポートしてもphpmyadmin内では 文字化けしませんが、サイト内で表示しているdbデータは 文字化けします。 専用サーバのphpmyadminから データを日本語の文字列に編集・更新したら、 phpmyadmin内ではそのデータに関しては文字化けなく表示されますが、 サイト内ではそのデータは文字化けしてしまいます。 専用サーバ情報は下記の通りです。 【専用サーバ】 os:centos 5 apache 2.2.3 php5.1.6 dbサーバ:mysql 5.0.77 アップしているファイルの文字コード:euc 分かる方、ご回答、よろしくお願いいたします。
回答: > $sql=mb_convert_encoding($sql,"euc-jp","euc-jp"); とりあえず、これは $sql=mb_convert_encoding($sql,"utf-8","euc-jp"); と、脳内変換しました。 mb_internal_encoding() とか mb_language() は どうなってますか?