みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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のバージョンだけなのでどう対処すればよいかわかりません。

どうやったら文字化けせずに表示できるでしょうか?

投稿日時 - 2007-11-27 11:36:57

QNo.3550697

すぐに回答ほしいです

質問者が選んだベストアンサー

・Mysqlに登録されているデータは本当にEUCですか?
http://jp.php.net/manual/ja/function.mb-detect-order.php
私はUTF-8で登録されているんじゃないかと思います。

・Mysqlのバージョンはなんですか?
私は5系なんじゃないかと思います。

投稿日時 - 2007-11-27 16:54:10

お礼

ご回答ありがとうございます。

あ、私も、そもそも『EUCで入っていないのでは?』と思いなおし、
先ほどmysql内のデータをダンプして調べてみたところ、やはりデータベース内のデータは『UTF8』でした。
ということは、インポート時のEUCオプションが効いていないことになります。UTF8⇒EUCに変更するオプションを使ってインポートしていたので、UTFのままだとは気が付きませんでした。

とりあえず原因が分かりましたので、php内でUTF8からEUCにコンバートすることで対処しました。

ありがとうございました。

投稿日時 - 2007-11-27 17:01:54

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

Mysqlから取得したデータをPHPで表示させるのに
phpMyAdminはなんの関係もありませんよ。

Mysqlから取得したデータをPHPで文字コード変換して表示してください。
http://jp.php.net/mb-convert-encoding

投稿日時 - 2007-11-27 15:09:43

補足

ご回答ありがとうございます。

AというサーバとBというサーバにある全てのファイルは同じです。
しかし、Aというサーバのphpでの出力は正常に表示され、Bというサーバのphpでの出力はDBから取得した値のみ文字化けします。
本来、サーバの設定やデータベースへのデータのインポート時の文字コードに何の関係も無いのであれば、結果は同じになるはずなので、そこが分かりません。
仮に文字コード変換で出来たとしても、今回の原因は不明となってしまい、今後Cというサーバに構築する際にまた同じようなことになる気がします。できればなぜこのようなことになるのか知りたいのですが、何かお心当たりなどありませんでしょうか?

投稿日時 - 2007-11-27 15:21:41

ANo.1

>phpMyAdmin - 2.8.2.4

またずいぶん古いバージョンですが、新しいのではだめなのでしょうか?
せめてphpMyAdmin-2.9までいけば all-languagesバージョンでいけそうです
いまは 2.11.2.2らしいです

http://www.phpmyadmin.net/home_page/index.php

投稿日時 - 2007-11-27 11:58:37

補足

ご回答ありがとうございます。

レンタルサーバなので、そこらへんの設定は運営会社任せかも知れません。また、同じ会社でもアカウント(サーバ)によって設定が異なり、
私が利用している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がデフォルト』になってしまったため、再び文字化け問題に遭遇してしまいました。

投稿日時 - 2007-11-27 12:28:19

あなたにオススメの質問