FrontPage > memo > Encoding

文字コード変換のヒント

文字空間の大きさ

ISO646(ASCII)

7ビット文字コードである。よって ASCII と言いながら、0x80〜0xff が表に入るのはおかしい。

0x00〜0x1f: コントロールコード(文字ではない)
0x20: [space]
0x21〜0x2f: !"#$&'()*+,-./
0x30〜0x39: 0-9
0x3a〜0x40: :;<=>?@
0x41〜0x5a: A-Z
0x5b〜0x60: [\]^_`
0x61〜0x7a: a-z
0x7b〜0x7e: {|}~
0x7f: [DEL]

JIS & EUC

2バイトの符号値は、第1、第2バイトともに

JIS : 0x21〜0x7E
EUC : 0xA1〜0xFE

の 94個分である。

ただ、JIS X 0208 ではこの範囲の符号値を直接規定していない。 第1バイトを区番号といい、第2バイトを点番号という。 よって文字空間のサイズは、

94x94 = 8836

である。

Shift JIS

シフト JIS は、10進数の 129〜159、224〜239 (0x81〜0x9F(31個)、0xE0〜0xEF(16個)) の範囲のバイトが現れると 2バイトモードが開始される。

続く第2バイトは 64〜126、128〜252 (0x40〜0x7E(63個)、 0x80〜0xFC(125個)) の範囲でなければならない。 よって文字空間のサイズは、

47x188 = 8836

である。

第1バイトの範囲は、英数字(ASCII、0x21〜0x7E)や 1バイト仮名 (半角カナ、0xA1〜0xDF)と重複しないように配置されている。 JISコードとは簡単なアルゴリズムで相互変換が可能である。

ISO-2022 の話

http://euc.jp/i18n/charcode.ja.html さんからの抜粋です。ISO-2022 について詳しく解説してあって、とても勉強になります。

ISO-2022-JP

いわゆる JIS コードである。ISO-2022 7bit 系。

EUC-JP

UNIX などでおなじみ。

Shift JIS

ISO-2022 に準拠していません。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS