ウェブページを「EUC」で符号化することについて

ここでは、ウェブで公開する文書の文字コードについての私の方針につい て説明する。以下の記述は近い将来、「新JIS漢字」規格の制定・ 普及に伴って変更される可能性が高い。

方針

符号化

私がウェブで公開する日本語HTML文書の文字コードを次のようにすること にした。HTML文書だけでなく、CSSスタイルシートやXML文書等も(日本文字を 含む場合には)同様の符号化を行う予定である。

今後公開するページはこの方針を採るが、既存のページで他の文字コード によって符号化されているものについては、ある時期に一斉にコードを切り替 えることはしない。ページの更新などの際に順次変更していく。

変換

上のように符号化された文書をHTML 4.0の文書文字集合であるUCS-4に変換 する場合は、上記で参照する規格で規定される文字の名前に従って変換するこ とが望ましい。この方法によって、「EUC」のどの文字がUCSのどの文字になる のかが、厳密に決定できる。

例えば、16進表現で0xa5a2の文字(片仮名の「ア」)の名前は、“KATAKANA LETTER A”であるし、0xa1dd (マイナス記号「−」)は“MINUS SIGN”である から、これらをUCSに変換する際にはUCSの中の同じ名前を持つ文字と対応付け れば良い。

ただし、利用者の目的に応じてそれ以外の変換表を用いることは自由であ る。例えば、JIS漢字とUCSとの間で包摂規準の異なる文字を変換する場合に、 その方が適切と考えられるときには、EUCでの文字の名前と異なるUCSの文字に 変換することがあっても良い。

解説

以下では、上の「方針」についてその理由等の解説を行う。

符号化」について

上で述べた文字コードは所謂「日本語EUC」であるが、目立つ違いとして以 下が挙げられる。

こういった違いはあるが、このコードで符号化された文書はMIMEで使われ る“EUC-JP”というcharset名で問題なくデコードできる。むしろ、片仮名の 重複符号化を最初から排除している分、元々のEUCよりも好ましい符号化であ ると考えられる。また、ISO/IEC 646 IRV (ASCIIと同等)とJIS X 0208で重複 している文字についても、重複符号化を原則として行わないことがJISの規定 の中で明記されている。

私のページでは以前からISO-2022-JPで符号化していたが、敢えてEUCに変 える理由としては以下が挙げられる。

一方、ウェブでISO-2022-JPを使う利点としては、ビットパターンからの自 動判別がたやすくできることがある。しかし、今回の方針のようにHTTPで “charset”を指定すれば、より確実に符号化方式情報をウェブクライアント に与えることができる。ただし、この情報が有効に利用されるかどうかはクラ イアント次第である。

charsetの付加については、適切に行えないISPが多いと思うが、私が利用 しているASAHIネットでは、ファ イル名の拡張子によってcharset情報付きで文書を送ることができるので、こ れを利用する(詳しくは内田明 氏による解説を参照のこと)。

EUCやISO-2022-JPでなく、パソコン等で広く普及しているシフトJISコード を使うことも考えられる。だが、ウェブで使う際には、URIにしばしば使われ る記号である「~」(チルダ)が無いことが問題である(厳密に解釈すれば、だが)。 シフトJISではASCIIでなくJISラテン文字が使われているので、0x7eはチルダ (TILDE)でなくオーバーライン(OVERLINE)である。このため、シフトJISでは URIの中のチルダを生のまま書くことはできず、“%7e”のように書く必要があ るのである。

なお、UCS系の文字コードを利用するという手もあるが、利用できる計算機 環境が限定されるし(なにより私の環境では編集できない)、情報も不足してい るので、コストに見合わないと判断し、当分は見送ることとした。EUCならば、 UNIX環境はもちろんのこと、Windowsでも、広く使われているMeadowやless、 Perl、Lynx、あるいはNamazu等のソフトウェアで自在に扱うことができる。

変換」について

HTML 4.0の文書文字集合はUCS-4 (ISO/IEC 10646-1)であり、HTML文書がこ のコードに変換して処理される可能性がありながら(実際には常にそうされて いるわけでは全く無いし、HTMLの仕様はそれを要求してもいない)、その他の 文字コードとUCSとの間の変換について様々な見解や実装があることを考慮し、 コード変換について特に節を立てることとした。

もっとも、ここで述べているのはUCSとJIS漢字規格とを利用すれば自然に 出てくる解であり、新しいことではない。ただ、現状における実際の変換には、 規格で規定される文字の名前(character name)に従わない複数の異なった実装 が使われているので、注意が必要である。

文献

1999年8月7日
矢野啓介
このページの権利等は「諸注意」に従います。