したがって、コンテンツを返すHTTPヘッダーに従ってISO-8859でエンコードされたWebページがあります。私はテキストコンテンツを返し、期待どおりにISOエンコーディングによってマングルされます。ISO-8859で正しく表示されたAJAX UTF-8コンテンツエンコードされたページ
しかし、同じテキストコンテンツを返すJSONP AJAX呼び出しを作成してページに挿入すると、これらの顔文字が正しく表示されます。特に、Content-Typeヘッダーはtext/javascriptなので、AJAX呼び出しではエンコーディングタイプのヘッダーが欠けています。
ここでは何が起こっていますか?私のChromeブラウザは、AJAXコンテンツが正しく表示されるようにするために何らかの巧妙なやり方をしていますか?
重要な場合は、jQueryライブラリを使用してAJAX呼び出しを行います。
デフォルトでは、jQuery Ajaxは、http://のコンテンツタイプcharsetがUTF-8 ... contentType(デフォルト: 'application/x-www-form-urlencoded; charset = UTF-8')に設定されている可能性があります。 api.jquery.com/jquery.ajax/ –
@VipinDubeyリクエストヘッダーはこれと何が関係していますか? – thatidiotguy
ブラウザでは、ISO-8859を既に持っているので、ファイルが同じフォーマットで保存されているかどうかを確認したり、メモ帳でファイルを開いたりして、ページに文字セットが定義されていないときはUTF-8を使用します。 file asで保存し、ISO-8859またはUTF-8ファイル形式であるかどうかを確認します。 jQuery Ajaxは、明示的に定義するまでは、UTF-8で応答を送信し続けます。 –