2007年3月19日

ブラウザの特殊文字認識について物申す

ブラウザの特殊文字(&..etc)の認識についてご報告です。

A タグの href 属性の中で、以下のようなコードを書くと、IE や Opera では、特殊文字として認識されてしまいます。FireFox では認識されずに済む。
<A href="./xxx.cgi?q=test®_flg=xxx">LINK</A>
とした場合に、&reg が、® として認識されてしまう、、、orz
確かに、特殊文字については、;(セミコロン)を省略して記載できるのだが、href 属性の中まで、特殊文字の表示として認識しなくてもいいのでは??これは、Bug ではないかと思っているのだが、どうなのだろう、、。
W3C で規定されている特殊文字は、他にも多く存在するため、同様の問題に遭遇する人は多いのではないかと思うのだが、、、。何か、回避策をご存知のかたは、コメント頂けると嬉しいです。
おそらく、この投稿を IE や Opera で見ると、A タグの &reg が特殊文字に変換されてしまっているのでは、と思います。

2 件のコメント:

Kuribo さんのコメント...

はじめまして、とおりがかりのクリボウといいます。

XHTML で、& の実体を &amp; に書き換える必要があるというのは、href など HTML の属性値についても同様です。

詳しくはこちらの「付録C.12」をどうぞ。

Unknown さんのコメント...

クリボウさん、教えて頂きありがとうございますm(__)m
HTML に関しては、知識が中途半端になっているので、改めて紹介頂いた、ドキュメントを読んで勉強したいと思います。

ありがとうございます!