IE5.0の一部の文字化け(UTF-8で)の原因と対策
●Internet Explorer のバージョン確認方法
http://www.microsoft.com/japan/security/bulletins/ver_ie.mspx
●[IE5] Internet Explorer 5.0 のリリースされたバージョンとビルド番号
http://support.microsoft.com/default.aspx?scid=kb;ja;JP414907
により、次の表のようにまとめられます。
| Internet Explorer 5.01 SP4 | 5.00.3700.1000 (Windows 2000 SP4) |
| Internet Explorer 5.01 SP3 | 5.00.3502.1000 (Windows 2000 SP3) |
| Internet Explorer 5.01 SP2 | 5.00.3314.2101 5.00.3315.1000 (Windows 2000 SP2) |
| Internet Explorer 5.01 SP1 | 5.00.3105.0106 5.00.3103.1000 (Windows 2000 SP1) |
| Internet Explorer 5.01 | 5.00.2919.6307 5.00.2920.0000 (Windows 2000) |
| Internet Explorer 5.0 | 5.00.2014.0216 5.00.2314.1003(Office 2000 付属のものと同一) 5.00.2614.3500 (Windows 98 SE) |
のようになります。今回発見したのは、Windows98SE付属の5.00.2614.3500における文字化けです。

のように文字化けします。本来は、

のようにならなければなりません。
また、不思議なことに、ページを記述しているHTMLソースの文字コードをUTF-8からShift_JISに変更した、全く同一テキストのページは、IE5.00.2614.3500でも文字化けしません。
まず、3行目の「画像」が「□□」のように文字化けしているのですが、2行目の「画像」は文字化けしません。2行目、3行目ともソースは「 画像<br>」であり全く同じなのですが、3行目だけ文字化けします。さらに、3行目のソースを「 m画像<br>」と「m」を追加してやると、どういうわけか、

のように3行目の「画像」も文字化けしなくなります。
さらに、同じIE5.0xでも、Windows98の端末で利用しているIE5.01sp2(5.00.3314.2101)では、このような文字化けは一切発生しません。むむむ。ページ全体が文字化けするのであれば、あるいみ分かりやすいのですが、ページ内のごく一部だけ文字化けし、その出現パターンが全く読めません。IE5.00.2614.3500の固有の問題なのか?
この問題の原因をいろいろ調査しましたが結局分からず、他のことを調べている時に、偶然、解法を見つけました。マイクロソフトの公式技術文書にちゃんと掲載されていました。
●[IE5]sans-serif を指定した HTML ファイルを表示すると文字化け
http://support.microsoft.com/default.aspx?scid=kb;ja;417057
です。抜粋しますと、
早速、98SE端末のフォントを調べてみると、これらのフォントがインストールされていました。さらに、Arial Unicode MSを試験的に他の端末から入れてみると文字化けが解消しました(フォントのこのような利用はライセンス違反になりますので、実験後すぐに削除しました)。先ほどの例でいうところの3行目の「 画像<br>」には、2行目の「 m画像<br>」とは明らかに異なるフォントが当たっているのですが、文字化けは解消しています。
推測ですが、sans-serifフォントを指定しているわけでないHTMLファイルであっても、文字コードがUTF-8になると、sans-serifを指定していることと同じ結果になるようです。
そこで、フォントをHTMLソース中で明示的に指定してあげ、「<font face="MS ゴシック">」(いつも私は悩のですが、「MS」は全角で、「MS」と「ゴシック」の間は半角スペース)を指定してあげると文字化けは解消しました。
IE5.0を使っているユーザーは、私が運営しているサイトのアクセスログによれば、0.8%前後です(ちなみに、IE5.01は1.5%ほどいます。)。これを多いと見るか少ないと見るかは人それぞれですが、知っておいて損はない話だと思います。
それにしても、IE5.0はマイナーバージョンが多すぎですね。特にWindows2000でサービスパックごとにIEのバージョンが異なるというのは始末に終えません。また、わざわざセキュリティ上リスクのあるSP2やSP3を準備する気にもなりません。これらのバージョンのスタンドアローン型のIEがあればいいのですが、以前ご紹介したSkyzyx.comで配布されているのはIE5.01SP2なので駄目です。このマイナーバージョンの入手は、ブラウザ・マニアの私でも入手を試みる気持ちが今のところ起きないですね。
----------------------
結論
Windows98SE付属のIE5.00.2614.3500では、UTF-8のHTMLファイルで一部の文字が文字化けすることがあり、その場合は、「MS ゴシック」などを明示的に指定してあげれば、文字化けが解消することがあります。
| 固定リンク
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67411/3248936
この記事へのトラックバック一覧です: IE5.0の一部の文字化け(UTF-8で)の原因と対策:

コメント