C言語関係掲示板

過去ログ

No.535.漢字2バイトコードの意味

[戻る] [ホームページ]
No.4398

漢字について
投稿者---baio(2003/01/16 13:11:21)


漢字2バイトコードの意味を教えてください。

No.4409

Re:漢字について
投稿者---baio(2003/01/16 18:26:57)


できれば具体例をあげてくれませんか?お願いします。


No.4453

Re:漢字について
投稿者---かずま(2003/01/18 14:50:52)


> 漢字2バイトコードの意味を教えてください。

> できれば具体例をあげてくれませんか?お願いします。

漢字は、数が多いので、1バイトでは表現できません。
「JIS X0208-1997 7ビット及び 8ビットの 2バイト情報交換用符号化漢字集合」
という規格で、2バイトの文字コードが規定されています。
2バイトといっても、それに含まれるすべてのビットで、文字を表現するわけで
はなく、縦横 94 x 94 の表の中に文字を配置していて、2バイトのそれぞれの
バイトは、0x21〜0x7E の値をとることが基本になっています。

具体例を挙げると、
「飲」という漢字は、16区91点(表の中で、縦16 横91 の位置)にあり、
それぞれを、0x30、0x7B と符号化しています。
2バイトを並べて 16進数で書くと、0x307B となります。
ただ、このままだと、1バイトコードの 0x30 の '0' や、0x7B の '{' と
区別がつかなくなるので、この値をある規則で変換して、0xB0FB (EUC) と
したり、0x88F9 (シフトJIS) としたりして使っています。

次のプログラムで、あなたのシステムの漢字コードを確かめてみて、結果を
報告してください。
#include <stdio.h>

int main(void)
{
    char a[] = "飲";

    printf("%x%x\n", a[0] & 0xFF, a[1] & 0xFF);
    return 0;
}


No.4472

Re:漢字について
投稿者---baio(2003/01/19 11:24:18)


ありがとうございます。実行した結果”88f9”とでました。よかったらまた説明お願いします。