dポイントプレゼントキャンペーン実施中!

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

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

A 回答 (3件)

・Mysqlに登録されているデータは本当にEUCですか?


http://jp.php.net/manual/ja/function.mb-detect-o …
私はUTF-8で登録されているんじゃないかと思います。

・Mysqlのバージョンはなんですか?
私は5系なんじゃないかと思います。
    • good
    • 0
この回答へのお礼

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

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

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

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

お礼日時:2007/11/27 17:01

Mysqlから取得したデータをPHPで表示させるのに


phpMyAdminはなんの関係もありませんよ。

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

この回答への補足

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

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

補足日時:2007/11/27 15:21
    • good
    • 0

>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がデフォルト』になってしまったため、再び文字化け問題に遭遇してしまいました。

補足日時:2007/11/27 12:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!