文字コードに関して、符号化文字集合と文字符号化方式という区別がいわれることがあります。拙著『プログラマのための文字コード技術入門』でもその分類に従っています。
この区分によると、JIS X 0208やJIS X 0213は符号化文字集合で、シフトJISは文字符号化方式だということになります。
ところが、混乱させることをいうようですが、JIS X 0208:1997では、シフトJISは符号化文字集合だと書かれています。ウソだと思うなら、JIS X 0208:1997の附属書1を見てみると良いでしょう。
これはどういうことでしょう。シフトJISが文字符号化方式だというのが間違っているのでしょうか、それとも97JISの記述が間違っているのでしょうか?
結論をいってしまうと、これは単に用語法の問題ということになります。
そもそも、「符号化文字集合と文字符号化方式」という区分はISOやJISといった文字コード標準の世界で使われ始めたものではありません。多分に便宜的・慣用的な用語法でしかないのです (IETFのRFCにはそうした用語法が見えますが、IETFは文字コードを定める団体ではありません)。
ISOやJISの多くの規格では、符号化文字集合(coded character set)という用語は、「文字集合を定め、かつ、その集合内の文字とビット組合せとを1対1に対応付ける、あいまいでない規則の集合」として定義されています。そして文字符号化方式という用語はありません。シフトJISという文字コードの内実はこの用語の定義に合致しますから、JIS的にはシフトJISを符号化文字集合と呼ぶのは何らおかしいことではないのです。
ただ、拙著では、慣用的な用語法にも一定の便益があると認定して、あえて公的標準にない用語法を採用しました。
シフトJISやEUCといった文字コードは、JIS X 0208やJIS X 0213を変形したり他の符号化文字集合と組み合わせたりして作られているわけですから、そういうものに対しては符号化文字集合とは別の言葉で呼んだ方が分かりやすいという判断です。
しかしながら、「符号化文字集合と文字符号化方式」という区分がいつでも絶対にあるのだという立場をとってしまうと、ASCIIやLatin-1やBig5などを説明するときに、「符号化文字集合と文字符号化方式が一体になっている」といった苦しい説明をせざるを得なくなります。実際には、元々そんな区分はないにもかかわらずです。
肝心なことは、「符号化文字集合と文字符号化方式」という区分は絶対的・本質的なものでは必ずしもないということです。そういう区分を設けた方が便利なときだけ、採用すればいいわけです。































