「ちょっと悪いんだけど手元のマックで見てくれない?」。しばしばこんな電話がかかってくる。内容は,特定のWebページがマックだと見えないらしいので確かめてほしいというもの。指定されたURLにアクセスすると案の定,真っ白のページが表示される。文字化けならともかく何も表示されないのはちょっと不気味。実はこれ,マック版のInternet Explorer 5だけで起こる現象である。

 Internet ExplorerとNetscape Navigator/Communicatorは,HTML解釈やスクリプトの動作仕様に微妙な違いがある。このためレイアウトが崩れたり,期待した動作をしないという話なら知っている人は多いだろう。この種の問題は,ブラウザのバージョンやプラットフォーム(WindowsかマックかUNIXか)の違いでも生じる。

 今回の話はそれとはちょっと違う。問題のWebページは特殊なHTMLタグやスクリプトを使っているわけではない。他のブラウザならプラットフォームを問わず表示できる。マック版Internet Explorerの,しかもバージョン5でアクセスした場合のみ,真っ白になるのだ。原因は,マック版IE5の文字コードの判別方法にある。

 最初に一般的な文字コード判別方法について説明しておこう。Webページに使われる文字コードはいくつもある。日本語だけでもJIS,SJIS,EUCの3種類が使われている。ブラウザは送られてきたHTMLファイルから文字コードを自動判別して画面に表示する。

判別法は4種類ある。優先度が高い順から,
1. Webサーバーが指定する文字コードを使う
2. HTMLファイル先頭の「METAタグ」の「charset=」指定を使う
3. ブラウザの初期設定に従う
4. ファイルの内容からWebブラウザーが独自に判断する
となる。

 ブラウザはこの順番でどの文字コードが使われているのかを判断する。このとき,判別結果と実際の文字コードが異なると文字化けが起こる。1や2の指定を誤ったときに文字化けが生じやすい。

 マック版Internet Explorer 5も基本的に同じだが,1つだけ例外がある。METAタグの指定がJISで,実際の文字コードがSJISの場合に限り,ファイル読み込みの途中で表示処理を止めてしまうのだ。これが真っ白なWebページの正体である。つまり,原因はHTML製作者のミスなのだ。

 このミスは,複数の人が流れ作業でHTMLファイルを作るようなケースで起こりやすい。たとえば,JISを想定したHTMLテンプレートを使っているのに,うっかりSJISで書いてアップしてしまうことがあるからだ。こうしたWebページは商用サイトの中にときどき見つかる。

 厄介なのは,Windows版のIEを使っていてもこの問題に気づかないこと。マック版IEは専用にコードを書き起こしたものであり,Windows版とは全く別のプログラムである。仕様書が共通なので機能は似ているが,内部コードは違うのだ。そのため,このケースのように細かい部分で全く違う振る舞いをする。

 インターネットの世界ではマック・ユーザーは確かに少数派である。だが,iMacユーザーを中心にまだまだ多くのユーザーが存在する。SJISで書いてアップした記憶があるWeb制作者は,ちょっと確認した方がいいだろう。

山田 剛良

関連リンク

Internet Explorer 5.0 Macintosh Editionの機能紹介ページ。主要な機能をマック版向けに独自に開発した経緯などの説明がある
コンテンツ制作会社がホームページ作成のノウハウを分かりやすくまとめたページ。IEとNetscape,プラットフォームの違いによる不具合の解説がある