プロが教えるわが家の防犯対策術!

サーバー側をPHPにしてajaxシステムを作ろうと思っています。
サーバからのデータ取得時にResponseTextを使用しており、ブラウザの表示での文字化けで困っています。
WinXP SP2 IE6.0では、UTF-8なら表示できますがEUC-JPは文字化けします。
しかし、Win2K IE5.0とWinX PSP1 IE6.0では、UTF-8は文字化けし、EUC-JPなら表示されます。
こっちを立てればあちらが立たずという状況で困っています。

また、直接XMLファイルやテキストファイルを作成し、これを読み込むと
どのパソコンでも表示することができました。
phpから出力した文字がうまい具合に読めないのです。

ちなみにRespondeXMLを使用する場合、
XMLファイルを直接読み込むと内容を取得できるのですが、
PHPから出力したXMLデータを取得すると何も表示されません。

いい解決方法はないでしょうか。よろしくお願いいたします。

サーバシステム
fedoraCore3
Apache 2.0
PHP 4.3.11
php.iniの文字コード設定はEUC-JP用にしています。

A 回答 (1件)

状況がわからない部分あるので推測で書きます。


文字化けが起きるのは
1.出力時の文字コードが文字コード設定と食い違っている。(EUC設定なのにデータはUTF8とか)
2.<head>タグ内で文字コード指定していない。またはデータの文字コードと食い違っている。
3.HTMLとJavascriptで文字コードが食い違っている。
1,2だったらバグですという話ですが仮に3であれば
<script language="JavaScript" charset="UTF-8">等で解決することがあります。

この回答への補足

ご回答ありがとうございます。
PHPファイルはすべてUTF-8かEUC-JPに統一しています。
文字出力はPHPで直接
print "あいうabc";
としてテストしています。
HEADタグにはファイルの文字コードにあった属性を指定しています。
また、アドバイスいただいたcharsetを指定してもやはりだめです。

私が質問時に言っていた「文字化け」というのは、画面表示時にエンコードを手動設定すれば直るものではありません。

EUC-JPにすれば表示しないブラウザがあり、かと言ってUTF-8にすれば表示できなかったブラウザは表示できるようになっても、EUC-JPで表示できていたブラウザが表示できなくなるのが不思議です。

補足日時:2005/07/08 13:08
    • good
    • 0

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