« Mac版IEのRefererバグ | トップページ | Safariと半角円マーク(EUC-JP編) »

2006/09/05

Mac版IE5.23(Panther、Tiger)とチルダの文字化け



【VISA/MasterCard】ネットで簡単申込!最短10分自動審査/スピード発行!

Macにはエスケープ文字(バックスラッシュ。Windowsでは円マークで表示されるフォントが多い。)の処理にかかわる問題もありますが、今日はチルダ「~」の取り扱いに関する問題をまとめてみたいと思います。

プロバイダの無料スペースなどのURLに使われることの多いこの文字。Macでは、このチルダに関する問題が多いです。

=================================================================
◎ 半角チルダが全角文字に化ける!!
=================================================================
● Macromedia - co0036 - チルダが含まれている web サイトへ接続の設定ができない
http://www.adobe.com/jp/support/contribute/ts/documents/co0036.html
ContributeでMacOS10.3xの環境で起こるそうです。「Contribute 3 で修正された」とあります。

● Macromedia - Dreamweaver TechNotes : 半角チルダ "~" を入力すると 全角の文字に変換されてしまう。
http://www.adobe.com/jp/support/dreamweaver/ts/documents/dw0477.html

Dreamweaver 8 ではこの問題は、解決されているものの、Mac OS X 10.3x上でこの問題があったといいます。

また、この問題はブラウザの世界でもやっぱり存在し、Panther及びTiger上のIE5.23では、Shift_JISのホームページ上(EUC-JPやUTF-8のホームページでは、この問題は発生しませんでした。)にあるフォームの入力欄に半角の「~」を入力すると、勝手に全角の文字「0x8150」(オーバーライン「 ̄」)に変換されてしまいました。

同様の問題がSafariでも発生するという書き込みをGoogleで多数発見しましたが、PantherやTigerのSafariでは再現できませんでした。Pantherに関しては、最新の10.3.9だけでなく、10.3.5や10.3.2や10.3でも試しましたが、Safariでは再現できませんでした。しかし、Jaguar(10.2.3や10.2.8)でテストしたところ、高い確率で再現できました。でも、なぜか100%の再現率ではありませんでした。また、JaguarのMac版IE5.22では、再現できませんでした。さらに言えば、OS9のIE5.0や5.17では起こりませんでした。

この解決策は意外と簡単です。一般ユーザーの方は、「~」を含むURLを入力するときに「%7E」とエンコードした文字列に変換して入力すればいいのです。

例: http://www.example.com/~abc/ → http://www.example.com/%7Eabc/

とすればいいのです。

実際そのようなお願いをしているサイトも多いのですが、できれば、サイト側で対処したいものです。「0x8150」は「%7E」に置換することはそれほど難しくはないわけですから・・・。

RFC1738によれば、「~」は「unsafe」(安全でない)とありますから、そもそも使うべきでないのかもしれませんが、一般の方がそんなことを知っているはずもなく、実際、プロバイダの解説ページには、堂々と「%7E」ではなく「~」を含むURLが無料ホームページのアドレスと明記されていることも多いわけですから、何とかサイト側で対処したいものです。

なお、より新しいRFC2396では、「unreserver mark」になっており、使ってもいい文字となっているため、なおさらサイト側で対処すべき問題でしょう。本当は、マイクロソフト社が対処すべき問題かもしれませんが、すでに配布もサポートも終了しているブラウザに対して、それは100%不可能。プログラムで置換することで対処しましょう。



なお、上の例では、「%7E」に変換しましたが、もしかしたら、単純に半角のチルダに置換するだけで十分かもしれないです。サイトの訪問者が半角のチルダを入れたつもりが、「%7E」に勝手に置換されているのを見れば、初心者は混乱することもあるだろうからです。Mac版IE5.23(Panther、Tiger)には、確かにフォームデータに入力した半角の「~」が全角文字の「 ̄」に勝手に変換してしまう不具合はありますが、「ハイパーリンクされた半角チルダを含むURLにアクセスする際に全角文字に勝手に変換してアクセス(して、404エラー「ファイルが見つかりません」になる)するような不具合は確認できませんでした。そういう指摘とも取れるページはGoogle検索でいくつか見かけましたが、恐らくそれは違うのではないかと私は思います。

1.Mac版IEのユーザーが、掲示板などで半角チルダを含むURLを入力・投稿。

2.全角文字の「 ̄」(0x8150)がPOSTもしくはGETされ、サーバ側のプログラムはそのまま、データベースに登録。

3.登録されたデータを元にページが更新される。その中には、全角文字の「 ̄」を含むURLがそのまま表示され、そのURLに対してハイパーリンクが張られます。

4.その全角文字を含むURLは、Windowsユーザーがアクセスしても、Macユーザーがアクセスしても、投稿者のホームページにはたどりつけません。「ファイルが見つかりません」となります。

つまり、「4」の状態を見て、「Macの場合、チルダを含むURLに正しくアクセスできない」と言われているのではないかと思います。本当は、「4」の状態の場合、Windows版IEやFirefoxでも同様の現象が起こっているであろうに、です。ただ、この辺りはもう少し検証してみないとはっきりとは分からないような気がします。ですから、無難な解決策としては、やはり、「2」の段階で、プログラマーが「 ̄」(「0x8150」)を「%7E」に置換してあげるのが一番のような気がします。



|

« Mac版IEのRefererバグ | トップページ | Safariと半角円マーク(EUC-JP編) »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67411/11771131

この記事へのトラックバック一覧です: Mac版IE5.23(Panther、Tiger)とチルダの文字化け:

« Mac版IEのRefererバグ | トップページ | Safariと半角円マーク(EUC-JP編) »