jQueryをつかってHTML文字列を表示させるときにIEで文字化けする


以下の処理を行うときになぜかIEでのみ文字化けする現象にぶち当たった。

A.phpにイベントを仕掛けて

jQueryのAjaxメソッド発動

B.phpにAJAXリクエストをなげて

B.phpでHTMLテキストを生成して

A.phpのAjaxメソッドに戻して

A.php内のボックスに$(~).html(~)でHTMLテキストを描画

なぜかIEでのみ文字化け!! (´;ω;`)

なぜかIEの「ページ→エンコード→自動選択」をONにすると文字化けがおこらない。

ChromeやFirefoxでは文字化けは一切おこらない。

さらに、自分のテスト環境ではおこらず、本番環境でのみ発生する。

おそらく、ApacheかPHPの設定が異なるために起こっているのだと思う。

(詳細はしらべてないのでシラネ)

ってことで早速Google先生をシバキ倒してみたら、↓に答えのヒントを書いてくれているエロいひとを発見。

感謝感謝。

ズバリ以下のコードをHTMLテキストを吐く直前に書いてやればいい。

header(“Content-type: text/html; charset=UTF-8”);

前述のヒトはJSONデータでお困りだったようだけど、今回は「text/html」なので、そこらへんを修正ってことね。

以上、めでたし、めでたし。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です