Internet Explorer の UTF-8 罠

私は普段インターネットを徘徊するのに Firefox を使っているのですが、『わくわくドウナツランド』の記事を追加したときには Microsoft 社の Internet Excploer と Apple 社の Safari (ともに Windows 版) でも表示の確認を行っています。その作業の中で、Internet Explorer での確認で困った問題が見つかりました。それは、UTF-8 で記述した XHTML が文字化けする というものです。

現在の Web の文書は HTML 4.01 という仕様に則って記述することがほどんど なのですが、『わくわくドウナツランド』における文書の多くは XHTML 1.1 という、マニアでないと知らないようなもので記述しています。XHTML は、これまた普通の人には馴染みがないかもしれない XML という仕様の仲間で、この XML は UTF-8 という文字セットで記述するのが一般的なのです。特に UTF-8 でないといけないということはまったくないのですが、ま、今時は Shift_JIS なんかよりは便利なことが多いのです (ファイルサイズ大きくなるけど)。

そんな理由で UTF-8 で XHTML 文書を作成しまして、いざ IE 7 にて確認しましたら、あらたいへん。なぜか文字化けしてますわよ? IE のエンコードがどうやら UTF-8 ではなくシフト JIS になってしまっているのが理由であることはすぐに分かったので、手動で UTF-8 に切り替えてあげたら正常に表示されました。でも、文書中には encoding="UTF-8" と明確に指定してあるにも関わらず、どうして勝手に「これはシフト JIS だよ!」と思われてしまうのかが分かりませんでした。最初は私の書き方が悪いものと考えていろいろ修正してみたり、サーバー側での送信文書のエンコード指定を試みたり、といろいろやってもなかなか正常に表示してくれません。Google 先生を利用して解決策を探していましたところ、かなり諦めムードに突入していた頃にどうやら BOM (バイト順マーク) を付与すれば正しく表示される ということが分かりました。

UTF-8 の仕様としては BOM の有無はどちらでも構わないように定義されているようですが、世間的には BOM あり派と BOM なし派が激しくぶつかり合っていまして、こしあん派とつぶあん派の抗争を直ちに想起させます。ちなみにわたしは絶対つぶあん派です。こしあんとかないし。笑う。まぁ、今回遭遇した問題の根本は、IE のバグという単純なものではなくて仕様面でのやや面倒な問題が絡んでいるようですね (→ 参考 : Sun Eternity)。

その後、ウチの IE くんを 8 にアップデートしましたので BOM なしでの表示を試して見ましたら、今度は最初から UTF-8 でまともに表示してくれているようですね。その他 IE 7 で発生していた様々な不具合が治っていたり、ようやく CSS2 に対応してくれたりと、いろいろと好感度の高い修正が入っていますので、IE 6 に固執している人はともかくとして IE 7 を使っている人は早々に 8 に乗り換えてしまうことを私はすとろんぐりーれこめんどしたいです。我がドウナツランドとしましても、いままで IE での未対応のために躊躇していた CS2S の before, after などの「疑似要素」を採用してみました。ときどき略語や難しい言葉に対して こんな感じ で短剣符がついているものがそうです。マウスカーソルをあてたりすると、何かがにょろっと出るかもしれません。すっと使いたかったのよね。コレ。

それにしても、前述の Sun Eternity にある一言 ま た あ な た で す か ? には共感せざるを得ません...。

メッセージ

じゅね(・ω・)"""""" さん (2009-09-30)

 なんだか ものすごくむつかしいお話でよくわかりませんでしたが カーソルあてると ”にょろっ”と出るやつはいいねっ! すきすき(*´ω`*)

堂捺 餡 さん (2009-10-01)

今回は一般の方を置き去りにする内容なのに読んでくれてどうもありがとうございます! IE 8 や Firefox なら短剣符のところで難しい言葉に説明を入れてたりするので、気になったら見てみてください。まぁ大概はただの略語の元の表現を書いてるだけですけれど。

Nobuyuki さん (2009-10-04)

まったくわかんないやーw ハードのことはある程度わかるけどソフトはまったく無頓着です・w・  

堂捺 餡 さん (2009-10-06)

技術系の記事は技術者であっても専門外だとサッパリだったりしますがインターネットに載せることで情報共有ができるので同じ問題に当たってしまったひとがいたときの手助けになるといいな、と思って書きました。仕事をしているとどうしても自力では解決できない問題がたびたび出てきます。そうしたとき、同じ問題がこうした記事の形で公開されているととても嬉しく感じるのです。インターネットって素晴らしい!

メッセージを書く

:
: