かなり以前からこの問題が指摘されている。私自身もこのグログの支援サイトで一部のページが白いままになって見れないと苦情をいただき、前にこのブログでも書いたが、一応対処して、指摘されることはなくなったものの、はたしてうまくいっているのかどうかは不明。
最近になって、私が作成したページではないが、また同じ問題を私の周辺でよく耳にするようになったので、検証して見ることにした。
検証用に以下のようにダミーのページを作成
shift_jisとutf-8の文字コード宣言を、日本語(マルチバイト文字セット)を使用したtitleタグの前に記述したhtmlをそれぞれ1点ずつ。shift_jisとutf-8のcharset宣言を同じく日本語を使用したtitleタグの後に記述したhtmlをそれぞれ1点ずつ。utf-8のcharset宣言を半角英数字のみのtitleタグの後に記述したhtmlを1点。いずれも簡単なダミーのjavascriptを記述してある。この計5点のhtmlをIEの各バージョンとその他のブラウザで開いた時にどうなるか試してみた。
(各ページは、このブログの支援サイトに置いた)
- charset=shift_jisを日本語を使ったtitleタグの前に記述
- charset=shift_jisを日本語を使ったtitleタグの後に記述
- charset=utf-8を日本語を使ったtitleタグの前に記述
- charset=utf-8を日本語を使ったtitleタグの後に記述
- charset=utf-8を半角英数字のみのtitleタグの後に記述
テストの結果は以下のとおり。
Windows XP Home SP3
IE7
4.で問題発生。画面が真っ白に。エンコードをみるとshift_jisと認識している。
IE6(IETester)
4.で問題発生。画面が真っ白に。エンコードをみるとshift_jisと認識している。
IE8(IETester)
4.で問題発生。画面が真っ白に。エンコード確認できず。
Firefox3.6.3
問題発生せず。
Google Chrome11.0.696.68
問題発生せず。
Safari5.0.2
問題発生せず。
Sleipnir2.9.7 (ブラウザエンジン:Trident)
4.で問題発生。画面が真っ白に。エンコードをみるとshift_jisと認識している。
Windows Vista Home SP2
IE8
問題発生せず。
IE6(IETester)
問題発生せず。
IE7(IETester)
問題発生せず。
Firefox4.0.1
問題発生せず。
Google Chrome11.0.696.65
問題発生せず。
Safri5.0.5
問題発生せず。
Sleipnir2.9.7 (ブラウザエンジン:Trident)
問題発生せず。
Windows 7 Pro
IE9
Firefox 4.0.1
問題発生せず。
Google Chrome11.0.696.68
1.と2.のページを英語のページと判断、「翻訳しますか?」が出る。
表示の問題は発生せず。
Safri5.0.5
問題発生せず。
Windows 7 Pro XPモード(XP SP3)
IE6
4.で問題発生。画面が真っ白に。エンコードをみるとshift_jisと認識している。
結論めいたもの
今回問題が確認されたのは、XPのIE7、XPのIE6(IETester)、XPのIE8(IETester)、XPのSleipnir2.9.7 それと7のXPモードIE6。いずれのケースも日本語(マルチバイト文字セット)を使用したtitleタグをutf-8のcharset宣言の前に記述したhtmlが真っ白で何も表示されないものだった。
想定していたVistaのIE8では問題は発生しなかった。前回(3ヶ月程前)の問題確認は、VistaのIE8が発端だったが、マイナーアップデートで修正されたのか、htmlの内容に差異があるのかは不明。
真っ白で何も表示されないページを避けるためには
- 使用する文字コード(charset宣言するコード)がutf-8の場合は、日本語を使用したtitleタグを必ずcharset宣言の後に記述する。
- titleタグをcharset宣言の前に記述する必要がある場合は、titleを半角英数字のみにする。
とりあえずこれだけ守れば、問題発生はかなり低減できるはず。くり返しになるが、私の場合は、今のところ、この問題で指摘されることはなくなった。
0 件のコメント:
コメントを投稿