いわゆる半角カナの危険性

いわゆる半角カナこと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 魔術幻燈
poetlabo@cap.bekkoame.or.jp