最近書いた PHP プロジェクトで Ajax テクノロジーが使用され、ユーザー エクスペリエンスが大幅に改善されましたが、同時に新しい問題も発生しました。つまり、Ajax によって返される応答テキスト内の中国語はほとんどがページエンコーディングをUTF -8に指定しても文字化けします。
これは、返されたresponseTextを処理するときにXMLHttpがUTF-8エンコーディングに従ってresponseBodyをデコードするためです。サーバーから送信されたデータストリームが実際にUTF-8エンコーディングである場合、中国語の文字は正しく表示されますが、GBKの場合は中国語の文字が正しく表示されます。または、他のエンコーディングでも上記の状況が発生します。
解決策は、XMLHttp が混乱しないように、サーバーから返されたデータ ストリームにヘッダーを追加して、送信されたデータ ストリームのエンコーディングを示すことです。
PHPコード
header('Content-Type:text/html; charset=GB2312');