2012-04-27 2 views
3

私のページがUTF-8でエンコードされていて、コードがa.phpで、a.phpがajax(jQuery)$.getでフェッチされ、呼び出されたファイルのヘッダにwindows-1255のようなエンコーディングが指定されていますか? 舞台裏で何が起こっていますか? ありがとうAJAXが別のエンコードページを呼び出すと実際に何が起こりますか?

+0

良い質問です。私の経験は、ブラウザがシームレスに内部使用のために文字をUnicodeに変換することです(したがって、すべてのドキュメントは、宣言されたエンコーディングによって暗黙のうちにセットされている文字セットに関係なくUnicode文字セット全体を使用できます)。詳細に。私は、すべての文字がunicode char setにマップできると仮定しています。これはわかりません。 – goat

+0

また、他のページの宣言されたエンコーディングが正しいことを明確にするために質問を編集することもできます。 – goat

答えて

1

ウェブブラウザがそれらを解釈して文字に変換してユーザに提示するまで、すべてがバイトです。とにかくエンコーディングの競合が存在するため、AJAXで何が起こるかは実際問題ではありません。

たとえば、AJAXがUTF-8としてエンコードされたスカンジナビア語の文字 'å'を返すと、2バイトの0xc3a5でエンコードされます。 WebブラウザでエンコーディングがUTF-8になると予想される場合は、ユーザーに「å」として表示されますが、問題はありません。しかし、WebブラウザがLatin1を予期している場合、それらは基本的に2つの文字、つまり0xc3と0xa5と解釈されます。

+0

ajaxから取得したデータの表示方法を変更する方法はありますか? – Jackson

+0

最高の解決策は、常に同じエンコーディングで動作することですが、これは必ずしも起こりそうなことではありません。その場合、両端のエンコーディングを知り、一方を他方に変換する必要があります。おそらく私の知識が止まるこの場所のライブラリがあります。 – LostOblivion

関連する問題