プロが教える店舗&オフィスのセキュリティ対策術

たびたび同じジャンルの質問になってしまうのですが
質問させてください。

jis x 0208 という文字コードについてですが

この文字コードは94×94=8836文字を収容可能で、この中に6879文字入っています。
そしてiso2022に準拠しているのでGLやGLに呼び出して使います。

jisx0208は94×94の区点コードを使って一つの二次元の表が使われていますが
通常、コード表は1バイトを4ビットずつにわけて16×16の二次元の表を使われることが多いと思うのですが(7ビット構造のものは違いますが)、
その内GL、GRのコードポイントは94文字づつでありjisx0208の区点コードは8836文字分のコードポイント
があるのでGL、GRには収まらないじゃないか?という疑問です。

94×94というのは、94文字集合の表が94枚重なっているという三次元(っぽい)で表現され、第1バイトで94枚の表の中から一枚選び、第2バイトで選ばれた表から文字を選択するという表現ならしっくりきます。(94文字集合同士ならぴったりと収まるから)

三次元(っぽい)表も区点コードも結局は
同じ文字を指定できるので表現の問題なのでしょうが、
jisx0208はその性格上、固定的な16進値で表すより一段抽象化した区点コードで表した方が便利だから、区点コードというものが導入されているだけで中間バッファに指示して、GR,GLに呼び出すという流れだけ見るには三次元(っぽい)の表の考え方をしていいのでしょうか?

そもそも目に見えないところなのでこんなことをいちいち疑問に思うのもナンセンスかなと思ったのですが、どうもすっきりしないので、どなたか知恵を貸していただけたらと思っています。

A 回答 (2件)

JIS X 0208 は「文字集合」に規定であり、「符号化」についてはまた別の話になります。


JIS X 0208 で言及されている符号化のうち、
いわゆる JIS(ISO-2022-JP) や いわゆる EUC-JP は、ISO-2022 にのっとった符号化ですが、いわゆる Shift_JIS は、ISO-2022にのっとっていません。

で、いわゆる「JISコード」(ISO-2022-JP)ないし「EUCコード」についてでしたら、

> 94×94というのは、94文字集合の表が94枚重なっているという三次元(っぽい)で表現され、第1バイトで94枚の表の中から一枚選び、第2バイトで選ばれた表から文字を選択するという表現ならしっくりきます。(94文字集合同士ならぴったりと収まるから)

その理解で間違いありません。

ISO-2022-JP では、ロッキングシフトで JIS X 0208 の文字集合を GL に割り当てますし、
EUC-JP では、最初からJIS X 0208 の文字集合が GR に割り当ててありますが、
どちらの場合でも「2バイト文字集合」である JIS X 0208 が割り当てられている符号が現れた場合には、
「2バイト読み取って」そこから 1文字が確定します。

区点コードで考えるなら、
1バイト目で区を指定し
2バイト目で点を指定することで、
2バイトで1文字を表現すると考える形になりますが、
結局「3次元の表を選ぶ」というのとやってることは同じです。
    • good
    • 0
この回答へのお礼

ご返答したつもりになっておりました。
遅くなり申し訳ございません。

目に見えない部分の表現なのでどうも納得できなかったですが

的確なアドバイスありがとうございます^^

ご回答ありがとうございます!!!

お礼日時:2009/08/01 09:36

んー…。

考え方の違いですよねえ…。
あなたの考えることは合っていると思いますが、私は別に2次元で表すことに違和感を感じませんでした。

ちょっと考え方が違うなと思うのは、
>通常、コード表は1バイトを4ビットずつにわけて16×16の二次元の表を使われることが多い
ここですね。
1バイトコードならその通りですが、2バイトコードなら1バイト×1バイトで256×256の表を使って描かれることが普通だと思います。

また、ISO2022では94^n文字(あるいは96^n文字)の文字集合を扱えるとなっているので、ここでn=2なら平面で表すのが自然ではないかなと思います。
固定の16進数で表すべきでないのはNo1さんの言うとおり複数の符号化方法があるからですね。

>jisx0208はその性格上 ~ 区点コードで表した方が便利だから
というのは考え方が逆で、ISO2022で示された94^n、この場合94^2のコードポイントを分かりやすく図示するために生まれたのが「区点」という概念なのだと思います。
そしてさらに言えば「区点」を2次元の表で表すのはそれが便利だからであって、別に区点を「94文字集合の表が94枚」という書き方で表しても一向に問題はないでしょう。

あとは、JISX208を3次元で表してしまうとJISX0213(JIS2004)で面区点の3次元構造を使うことができませんし、そもそも3次元構造は目に見える形に表示するのが困難です。
なので平面で表せる限りは平面で表しておくのが便利だと思います。
    • good
    • 0
この回答へのお礼

ご返答したつもりになっておりました。
遅くなり申し訳ございません。

>というのは考え方が逆で、ISO2022で示された94^n、この場合94^2のコードポイントを分かりやすく図示するために生まれたのが「区点」という概念なのだと思います。

こう考えると、なんだか納得できました^^

ご回答ありがとうございます!!!

お礼日時:2009/08/01 09:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!