2バイト文字系の文字コード体系
前で説明したい文字コードは説明してしまったので、後は簡単に。
JEF
JEFは、富士通の文字コード体系です。富士通のメインフレームやオフコンなどで使われています。
メーカー固有系の文字コード体系の中では、比較的メジャーだと思います。
1バイト文字は、JIS X0201(JIS8)で表すものと、EBCDICで表すものの2種類あります。
2バイト文字の方は、2バイト文字系の文字をJIS漢字コードをベースに富士通が独自に拡張して表したものです。
文字コード体系の構成は、下の図のようになります。
まず、JIS漢字コードに準拠している部分は、JIS漢字コードを1バイト=7ビットコードと考えて、7ビット→8ビット化したときに各バイトの最上位ビットとして1を付加(つまりGRに展開、あるいはNEC風に言うとG1文字領域に展開)した文字コードになります。考え方としては、ASCII文字コードの拡張文字セット規格の8ビット表現と同じやり方で8ビットコード化している、ということになります。
そしてJIS漢字コードに無い文字を拡張文字セットとして、表の上側に拡張した形になります。
また、空白がA1A1のものと4040のものがあります。
1バイト文字(JIS8/EBCDIC)と2バイト文字の区別ができないので、両文字の区別に”印”を付けるタイプです。印には、JIS8の場合は漢字開始(1B6D)、漢字終了(1B6E)、EBCDICの場合はKI(28)/KS(38)、A(29)を使用します。
JIS漢字コードから、JEFコードに変換するのは簡単で、16進数表記:8080をJIS漢字コードに足してあげればいい。
「石」のJIS漢字コードは16進数で4050ですが、JEFだとC0D0になります。
当然、この変換が可能なのは、JIS漢字コードに準拠している文字コード部分のみで、JEFの拡張部分や外字部分は同じ仕組みでは変換できません。
何で最上位ビットを立てるのかというと、1バイト文字がASCII文字コードの場合、最上位ビットが0の場合1バイト文字、1の場合は2バイト文字の文字コードと判断できるからです。そう考えるとコードを1バイト文字の空いている場所にシフトする文字セットの仲間ということにもなります。
KEIS
日立の文字コードです。
1バイト文字はJIS X0201(つまりJIS7/JIS8)で表し、2バイト文字系の文字をJISコードをベースに日立が独自に拡張して表したものです。
細かく分けると、JIS7に対応した7単位KEISコード、JIS8に対応した8単位KEISコードの2種類があり、またJIS78に対応したKEIS78とJIS83に対応したKEIS83の2種類があります。
一般的にコンピュータで使用する8単位KEISコードなので、これの説明をします。
JIS漢字コードに準拠している部分は、JISコードのJIS漢字コードの最上位ビットを1にしたものです。
図を見て分かるとおり、JEFとは親戚同士の関係の文字コード体系です。ということで、共通する部分の説明は省略するのでJEFを見てください。
これもJIS8の場合は1バイト文字と2バイト文字の区別ができないので、KEISコード開始(0A42)、EBCDIKコード開始(0A41)という”印”で切り替えを行うタイプです。
主に日立のメインフレームなどで使われているようです。