Tagged ‘IE’

文字コードを疑え!

毎回では無いがPHPのようにサーバで生成されるページのデザイン等を修正するのに一旦HTMLとして保存し、静的ページとして保存してスタイルシートやJavaScriptを修正を進めたりする事もある。
今日もログイン後のページの修正でログインが面倒なのでダウンロードしたHTMLをInternetExplorerで確認しながら修正を進めていき一段落が付いたのでFireFoxとChromeで確認してみると「SyntaxError: illegal character」(OperaだとUncaught SyntaxError: Unexpected token ILLEGAL)というエラーが現れスクリプトエラーになって動作しなくなった。
ネットで検索しても解決法は見つからず小一時間ほど悩んでいたが、ふとエディタのウインドウ下のバーに見慣れない文字に気づいた。
「UTF-16LE」
作ったのは「UTF-8」でHTMLの宣言も「UTF-8」にしてるが、Internet Explorerで「ソースの表示」から「ファイル」の「上書き保存」とするとUTF-16LEで保存されるようだ(ちなみにOSはWindows2000から内部文字コードがUTF-16らしいが、少なくともInternetExplorer8までは正常な文字コード(UTF-8)で保存される)。
IE以外は「UTF-16LE」のHTMLから見て「UTF-8」の外部ファイルを「UTF-16LE」と勘違いして読み込もうとして文字化けしてそれが不正な文字(illegal character)としてエラーになっていたようで、エディタにて「UTF-8」に戻したら直った。

ちなみにInternetExplorerでもソースを表示せずに「ファイル」「名前を付けて保存」からだと文字コードを選択可能ですし、標準でソースの文字コードが選択されてるので問題無いです。