Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報
トップ  >  文字コードについて

2バイト文字系の文字コード体系

JIPS

JIPSは、NECの文字コードです。ジップスと読むみたいです。
Japanese Information Processing Systemの略らしいです。
細かく分類するとJIPS(J)というものとJIPS(E)というものがあります。他にも亜種として、後に説明するNEC内部コード(A−VX内部コードとも言う)があります。
主にNECのメインフレームなどで使用されているようです。

JIPSの説明の前に、まず用語の解説から。

2バイト文字コード空間を4つに分割し、それぞれの空間の領域のコードをG0文字集合からG3文字集合と呼んでいます。

この表を元にすると、JIS漢字コードは(1バイト=8ビットとすると)G0文字集合の領域に割り当てられていることになります。

後述の文字コードの大多数が、G1文字集合の位置にJIS漢字コード準拠部分を展開しているのに対して、JIPSはG0文字集合の位置にそのまま展開しているのがちょっとめずらしい文字コード体系です。

JIPS(J)

JIPS(J)は、1バイト文字系の文字をJIS X0201(つまりJIS7/JIS8)で表し、2バイト文字系の文字をJIS漢字コードをベースにNECが独自に拡張して表したものです。

G0文字集合部分は、JIS X0201準拠(つまりJIS漢字コードに準拠)で、それに8区、9区、12区、14区、15区をNEC独自に拡張して、外字領域を含めて、およそ9000字弱が使用できます。さらにG1文字集合部分にNEC拡張文字セットとして約5000文字と外字領域として約3800文字が用意されています。上の表のG1領域に割り当てられている文字の集まりだから、G1文字集合と言われています。このG1文字集合と言われているのは、NEC独自の文字集合です。

1バイト文字と2バイト文字のコードを判別するために印を付けるタイプです。KIコード(漢字イン:1A70)、KOコード(漢字アウト:1A71)で1バイト文字/2バイト文字の切り替えを行います。

JIS漢字コードとJIPS(J)のコード変換ですが、G0文字集合部分(JIS漢字コードに準拠している部分)は、一部の例外を除いて、そのまま同じ文字コードになります。例えば32区48点の「石」は、JIS漢字コードと同じ「4050」(16進数表記)です。
一部の例外とは、先に説明した8,9,12,14,15区のNEC独自拡張部分と外字領域です。これらはJIS漢字コード側には無いので、当然変換しようがありません。G1文字集合もNEC独自拡張なので、基本的にはJIS漢字コードには変換できません。

最近は、第三水準漢字と第四水準漢字に対応したG2文字集合もあるようです。

NEC独自部分以外は、JIS漢字コードそのままなので、他のJIPS(E)とかJEFとかのようにコード変換する必要が無いというのが特徴です。

JIPS(E)

JIPS(J)コードを1バイトずつJIS8→EBCDIC変換したものです。
1バイト文字系の文字はEBCDICで表します。
使える文字数や種類はJIPS(J)と同じです。
たぶん括弧内の(E)はEBCDICのEだと思います。(JIPS(J)の括弧内のJはJIS8のJかな?)

これも1バイト文字と2バイト文字の区別ができないので、KIコード(漢字イン:3F75)、KO(漢字アウト:3F76)という"印”で切り替えを行います。

JIS8→EBCDIC変換は、どういう風にやるかを簡単に説明します。
まず、JIS8のコード表とEBCDICのコード表を並べてください。
また「石」と言う文字を例にします。「石」のJIS漢字の文字コードは、「40 50」です。JIPS(J)の場合も同じでしたね。
まず1バイト目の変換をします。JIS8で「40」の文字コードに対応する文字は何か探します。すると「@」であることがわかります。次にEBCDICで「@」の文字コードが何かを探します。すると「7C」であることがわかります。JIPS(E)の「石」の文字コードの1バイト目は「7C」になります。
次に2バイト目の変換をします。同じように、JIS8で「50」の文字コードに対応する文字を探します。「P」です。次にEBCDICで「P」の文字コードを調べます。「D7」です。
「石」のJIPS(E)の文字コードは「7C D7」になります。

下の表が、JIPS(E)のコード表の一部です。実際に「石」の文字コードを見てみると「7CD7」になっています。

何でこんな訳の解らない変換をするかというと、JIPS(J)とJIPS(E)間で、1バイト文字と2バイト文字が混在している文章を変換するときに、ここが1バイト文字、ここが2バイト文字と分けて変換する必要がないからです。1バイト文字も2バイト文字も同じ仕組みで変換できます。JIS8の「A」をEBCDICの「A」に文字コードを変換するときのやり方を考えてください。同じやり方ですよね。(JIS8で「41」の文字コードを探すと「A」、EBCDICで「A」の文字コードを探すと「C1」)
JIPS(J)とJIPS(E)のKI/KOコードも同じように変換できます。

JIPS(J)とJIPS(E)の文字数は、完全に一致するので、相互変換はできます。(外字は例外)
JIPS(E)とJIS漢字コードの変換可能な範囲や問題は、JIPS(J)とJIS漢字コードと同じです。