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

解決済みの質問

PHPの文字化け

PHPでチャットを作っているのですが、どうしても、文字化けを起こしてしまいます。
文字化けを起こす場所は、入室するときの名前と、ログを読み出すときです。

それ以外は正常に動作しているように見えます。
文字化けする文字は、日本語だけで、アルファベットは問題ありません。
「テスト」と入力するとFirefoxでは「???鴻??」といった用になって、IEでは「・・"鴻ヨ」というように文字化けの仕方が違うようです。
文字コードはEUCです。
サーバーはwindowsでローカルサーバーを立てています。
サーバーの設定の問題でしょうか?
アドバイスをよろしくお願いします。

投稿日時 - 2008-05-01 22:42:45

QNo.3990987

困ってます

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

おそらく、クライアント側(ブラウザ)とサーバー側での文字コードが違うのでしょう。

クライアント側で表示する際にヘッダーで文字コードの指定はしてありますか(charsetの指定)?

例えば、仮にサーバー側がEUCでデータが保存されて、そのままの出力でSJISのクライアントへ送信すると文字化けが起こります。

また、mb_convert_encoding()など文字コードを変換する関数がありますので参考にしてください。

他にも、php.iniの設定などもありますので確認してみると良いと思います。googleで「php.ini 日本語 設定」などと検索すると結構出てきますよ。

参考URL:http://jp2.php.net/manual/ja/function.mb-convert-encoding.php

投稿日時 - 2008-05-02 00:17:07

お礼

回答ありがとうございます。
ヘッダーでEUCを指定していて、通常の文章などは全部日本語で化けることなく出ていました。

名前のところを mb_convert_encoding($name,"EUC-JP","UTF-8");として置き換えたところ、うまく表示できました。
ありがとうございました。

投稿日時 - 2008-05-02 00:24:54

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

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

回答(2)

ANo.2

入室ページの文字コードやログファイル系の文字コードはEUC-JPになっていますか?
文字コード関係は入力するページとその文字を表示させるPHPやCGIと同じにしないといけません。

投稿日時 - 2008-05-02 00:19:43

お礼

すべてEUC-JPに統一しています。
回答ありがとうございました。

投稿日時 - 2008-05-02 00:27:50

あなたにオススメの質問