【解決編】Mac版IE5.2.3でのプルダウンメニュー表示不具合
結論から言えば、「Windows-31J」が犯人でした。問題のあるサイトともメタタグでは「Shift_JIS」と記述されていたのですから、てっきり「Shift_JIS」だと思っていました。しかし、network sniffer VIGIL(このソフトはWindows用ソフトのため、WindowsXPの端末からアクセス)を使って、HTTPヘッダーを見て見ました。すると、両サイトともアクセス時に"Content-type: text/html; charset=Windows-31J"というヘッダーを吐き出しています。HTMLソース内のメタタグでは<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">となっていましたが、HTTPヘッダーは違ったわけです。
早速、2種類のファイルを準備して、テストして見ました。するとビンゴでした!!
●1. HTTPヘッダーに「Content-type: text/html; charset=Shift_JIS」を吐き出す場合。 サンプル
●2. HTTPヘッダーに「Content-type: text/html; charset=Windows-31J」を吐き出す場合。 サンプル
前者のサンプルでは、Mac版IE5.2.3でも日本語のプルダウンメニューが表示されますが、後者の場合、日本語は空白となります。昨日、問題のあるページをローカルに保存して、IEに再表示しても問題が再現できなかったのはHTTPヘッダーに問題があるためだったのです。ローカルで保存して表示した場合には、HTTPヘッダーは出力されませんので、メタタグで指定されていた「Shift_JIS」がイキになったようです。そのため、問題の解決の糸口をHTMLソース内に求めつづけている限り、問題の原因が分かりませんでした。
では、これはサイト側の問題でしょうか? Mac版IEの問題でしょうか? ここからは推論ですが、Mac版IEの問題である可能性が高いです。Mac版IE5.2.3では日本語の文字コードごとにフォントの設定が可能ですが、設定可能な文字コードは、
- 日本語(JIS)
- 日本語(シフト JIS)
- 日本語(EUC)
- ユニバーサル文字(UTF-8)
実際、HTTPヘッダーという形を取らず、メタタグで<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">とした場合でも、Mac版IE5.2.3では、プルダウンメニュー内の日本語が正しく表示されませんでした(サンプル)。プルダウンメニューとは関係の無い日本語テキスト部分は全く問題ありません。
結論: Mac版IE5.2.3にとってWindows-31Jは鬼門である。
Windows-31Jのページにプルダウンメニューを設置してはならない。
となります。
しかし、Windows-31Jをどうしても使いたい場合もあるようです。例えば、
●JSPで特殊文字が文字化けする場合の対処方法
http://www.atmarkit.co.jp/fjava/rensai3/mojibake02/mojibake02.html
には、Windows-31Jを使用せざるをえないシチュエーションについて説明されています。昨日見た問題発生ページが、いみじくも、JSPや、JavaをベースにしたColdFusionのページ(拡張子.cfm)であったのは、こういうことが関係しているのかもしれない。しかし、Mac版IE5.2.3のゆーざーだって約100人に1人ぐらいはいます(私のサイトのアクセス統計より)。できれば、無視して欲しくないですね。
結局、機種依存文字の関係で「Windows-31J」を使うということならば(たしかに、Safariではこの方法は有効。しかし、Mac版IEでは、AppleのTech Info LibraryにもありますようにWindows-31Jにしても機種依存文字の問題は解決しません。)、いっそうのこと、素直にUTF-8を使ったほうが良いですね。UTF-8だと、対策しないとテキストエリアの文字化けになるのですが・・・・(参照バックナンバー:「Mac版IE+ココログのコメント・文字化け」)。うーん、Mac版IE君、君はマイクロソフトに見捨てられているのか?
| 固定リンク
| コメント (0)
| トラックバック (0)


ちなみに、MacOS9.22+IE5.0(及び5.17及び4.5)では、問題は発生しませんでした。なぜ、MacOSX(私の環境は10.3.7ですが、hatenaの質問者の環境は10.3.6。)+IE5.2でのみ発生するのか、ますます不明です。また、同じMacOSXでも、SafariやFirefox、Operaでは問題が発生しません。あくまでも、IE5.2のみの問題であり、特定のページでのみ発生し、特定のページでは一切発生しないという不思議な現象です。
別のことを調べていて、思わぬ見っけものを見つけることがあります。今回のもそれです。Macで韓国語をコピー&ペーストすると文字化けすることがあるという件を調べていましたら(これも理由は分かりましたが、いつか時間ができたらまとめます。)、このココログの記事に対するコメント欄(textarea内)にMac版IE(5.2.3)で書き込もうとすると、左のように文字化けすることがあることが分かりました。

最近のコメント