質問: ### サイト上で、XMLがUTF-8なのに、Shift-JISのHTMLで読み込んで文字化けしない理由を知りたい ある企業サイトを運用(フロントのみ)しています。 詳しくは書けないですが、フロント側ではHTMLがShift-JISで用意されていて、XML(UTF-8)を読み込む際に文字化けせずに表示できています。 バックエンドがまだ分かっていないのですが、どのタイミングでUTF-8からShift-JISになっているかを調査しています。 調査の方法、問題の切り分け方など、一般的にはどのような方法があるか、というお知恵を拝借したいと思っています。 よろしくお願いいたします。 ### 補足 元となるHTMLのページから、一部XMLをJavaScriptで読み込んでいるようです。 ``` $.ajax({'contentType' : 'text/xml; charset=utf-8'}); ※一部 ``` ### ファイルの文字コードについて * HTML : Shift-JIS * JS : Shift-JIS * XML : UTF-8
回答: > > バックエンドがまだ分かっていないのですが、どのタイミングでUTF-8からShift-JISになっているかを調査しています。 > > > おそらく、**なっていません**。逆に、ブラウザが表示時にHTMLをShift-JISからUnicodeへ変換しているのではないかと思われます(そのほうがブラウザとしてもハンドリングしやすいでしょうし)。 JavaScriptは論理上、常に**UTF-16**で動いています。なので、JavaScriptへの入力、JavaScriptからの出力には適宜文字コード変換が入ります。