- ベストアンサー
phpMyAdmin - 2.8.2.4で『EUC-JP』を使うには?
レンタルサーバでPHP+MySql(EUC-JP)で構築しています。 phpMyAdmin - 2.6.3-pl1 では、ja-eucがデフォルトだったのでphpやDBをEUC-JPで設計しました。DBにインポートするテキストファイルもEUC⇒EUCなのでphpMyAdmin上でも、ブラウザ上(php)でも問題なく表示されていました。 しかし、 phpMyAdmin - 2.8.2.4 では、ja-eucが無くなってしまったため、 仕方なくUTF8でテキストを作成し、UTF8⇒EUCインポートを実行しました。 すると、phpMyAdmin上では普通に表示されるものの、 php(html)では完全に文字化けしてしまいます。 文字化けしているのはデータベースから取得した値のみです。 ソースファイルは全く同じで、異なるのはphpMyAdminのバージョンだけなのでどう対処すればよいかわかりません。 どうやったら文字化けせずに表示できるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
・Mysqlに登録されているデータは本当にEUCですか? http://jp.php.net/manual/ja/function.mb-detect-order.php 私はUTF-8で登録されているんじゃないかと思います。 ・Mysqlのバージョンはなんですか? 私は5系なんじゃないかと思います。
その他の回答 (2)
- calltella
- ベストアンサー率49% (317/635)
Mysqlから取得したデータをPHPで表示させるのに phpMyAdminはなんの関係もありませんよ。 Mysqlから取得したデータをPHPで文字コード変換して表示してください。 http://jp.php.net/mb-convert-encoding
補足
ご回答ありがとうございます。 AというサーバとBというサーバにある全てのファイルは同じです。 しかし、Aというサーバのphpでの出力は正常に表示され、Bというサーバのphpでの出力はDBから取得した値のみ文字化けします。 本来、サーバの設定やデータベースへのデータのインポート時の文字コードに何の関係も無いのであれば、結果は同じになるはずなので、そこが分かりません。 仮に文字コード変換で出来たとしても、今回の原因は不明となってしまい、今後Cというサーバに構築する際にまた同じようなことになる気がします。できればなぜこのようなことになるのか知りたいのですが、何かお心当たりなどありませんでしょうか?
- yambejp
- ベストアンサー率51% (3827/7415)
>phpMyAdmin - 2.8.2.4 またずいぶん古いバージョンですが、新しいのではだめなのでしょうか? せめてphpMyAdmin-2.9までいけば all-languagesバージョンでいけそうです いまは 2.11.2.2らしいです http://www.phpmyadmin.net/home_page/index.php
補足
ご回答ありがとうございます。 レンタルサーバなので、そこらへんの設定は運営会社任せかも知れません。また、同じ会社でもアカウント(サーバ)によって設定が異なり、 私が利用している2つのアカウントでも ・phpMyAdmin - 2.6.3-pl1 ・phpMyAdmin - 2.8.2.4 の二つがあります。(サーバは契約時に自動的に割り振られるため、選択はできない) ちなみにphpMyAdmin - 2.6.3-pl1 では、shift-jisで同じ文字化け問題が発生していたため、『デフォルト文字コード』だったEUCで構築したところ、phpMyAdmin - 2.8.2.4 では前回デフォルトだったEUC自体が無くなって『UTF8がデフォルト』になってしまったため、再び文字化け問題に遭遇してしまいました。
お礼
ご回答ありがとうございます。 あ、私も、そもそも『EUCで入っていないのでは?』と思いなおし、 先ほどmysql内のデータをダンプして調べてみたところ、やはりデータベース内のデータは『UTF8』でした。 ということは、インポート時のEUCオプションが効いていないことになります。UTF8⇒EUCに変更するオプションを使ってインポートしていたので、UTFのままだとは気が付きませんでした。 とりあえず原因が分かりましたので、php内でUTF8からEUCにコンバートすることで対処しました。 ありがとうございました。