phpMyAdminの文字化け

2006/04/06 | MySQL

自作PHPスクリプトとMySQLとのデータのやり取りで文字化けする件は、phpスクリプトのデータベース接続時に「SET NAMES」コマンドで回避できることがわかった。
自作スクリプトはこれで動いたけれど、とある環境でphpMyAdminで文字化けが発生することがわかった。不思議なことに「phpの設定」「MySQLの設定」が同じであるにもかかわらず、である。
いろいろ調べてみた。どうやらLinuxインストール時の環境にも依存するよう?だ。調べてみたところはここ。

/etc/sysconfig/i18n

このファイルで言語の設定が一行目に書いてあるのだが・・・。うまく動作しているほうはこのように記述があった。
LANG=”en_US.UTF-8″
対して動かないほうはというと・・・。

LANG=”ja_JP.eucJP”

つまり基本言語が「UTF8」か「EUC」かという違い(よくはわからないけど「Localeの違い」ってやつ?)。phpの設定としては基本的にEUCしか使用しないのでどちらも以下のように設定している。

mbstring.http_output EUC-JP
mbstring.http_input Auto
mbstring.encoding_translation Off
「モノは試し」ということでphpmyadminのあるディレクトリに以下の記述をしたhtaccessファイルを設置した。

php_value mbstring.http_output utf8

あら不思議。これでphpMyAdminからもちゃんと日本語が通るようになりました。ひょっとしたらhttp_outputの記述を変更せずにencoding_translationの値を変更することでもうまくいくかもしれない。
phpMyAdminはサーバの言語設定も見ているのかもしれない・・・。今度暇があればソースをじっくり眺めてみる必要がありそうだな。

1件のコメント

  1. tacar :

    本当にありがとうございます。
    これで長年の悩みが解決しました!!
    私の場合は、この1行でOKでした。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net