いわゆる半角カナことJIS X 0201カタカナは、メールやニュースでしばしば障害を引き起こすため、インターネット上ではすっかり嫌われ者と化しています。これはまたHTMLでも、#Unusedの領域にコードが重なってしまうので、使わない方が安全です。
まず、IANAにおける登録事項とRFC1866(HTML2.0)でのThe HTML Coded Character Setを比較してみてください。
Name: Shift_JIS (preferred MIME name)
MIBenum: 17
Source: A Microsoft code that extends csHalfWidthKatakana to include
kanji by adding a second byte when the value of the first
byte is in the ranges 81-9F or E0-EF.
Alias: MS_Kanji
Alias: csShiftJIS
IANAの登録事項によると、このMicrosoft codeでは、csHalfWidthKatakanaを押し込むために、1バイト目が 81-9F か E0-EF になっているときに2バイト目をくっつけるわけです。これは16進法による表記なので、10進法に改めると
1バイト目が#81 から#159 まで、あるいは#224 から#239 までになっていると、2バイト目をくっつけて半角カナを表わす
ことになります。(僕はこれを『1バイト文字』と解していましたが、この定義は少し違うようですね。)
ところが。
参照 説明
-------------- -----------
A - Z Letters A-Z
[ Left square bracket
\ Reverse solidus (backslash)
] Right square bracket
^ Caret
_ Horizontal bar (underscore)
` Acute accent
a - z Letters a-z
{ Left curly brace
| Vertical bar
} Right curly brace
~ Tilde
 - Ÿ Unused
à Small a, grave accent
á Small a, acute accent
â Small a, circumflex accent
ã Small a, tilde
ä Small a, dieresis or umlaut mark
å Small a, ring
æ Small ae dipthong (ligature)
ç Small c, cedilla
è Small e, grave accent
é Small e, acute accent
ê Small e, circumflex accent
ë Small e, dieresis or umlaut mark
ì Small i, grave accent
í Small i, acute accent
î Small i, circumflex accent
ï Small i, dieresis or umlaut
The HTML Coded Character Setでは、#127 から#159 までが Unused になっています。Unused というのは何もない空間ではなくて、制御記号のために空けてある場所なので、ここにコードが重なると制御記号として解釈され、まともでない動作になってしまう可能性があるわけです。
つまり、#127 から#159 までは、半角カナを表わすための1バイト目のコード番号とHTMLの制御記号を表わすためのコード番号がもろにぶつかってしまい、障害の原因となってしまいます。
残念ですがそういうわけで、W.W.W.では半角カナを使わない方が安全です。実際の事故としては
といった例が報告されています。
せっかくIANAに登録されて国際的に使えるようになった文字コードの一部を使うなというのも変ですが、インターネットはそういうもんだと思ってください。
Copyleft 1998 魔術幻燈