phpMyAdminの文字化け
自作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はサーバの言語設定も見ているのかもしれない・・・。今度暇があればソースをじっくり眺めてみる必要がありそうだな。
2007/02/13 at 3:22 AM
本当にありがとうございます。
これで長年の悩みが解決しました!!
私の場合は、この1行でOKでした。