Next: 腕試し用プログラミング課題1
Up: 3 テキスト・ファイル
Previous: 3.3 ASCII コード表を作ろう
日本語の文字コードは JIS (日本工業規格) で決められている。日本語にお
ける文字数が多いため12、1 文字を表すのに 16 ビットを用いる。
例えば「桂」という文字の JIS コードは 0x374b である。
しかし、ファイルの中に 0x37, 0x4b というバイト列をそのまま入れたので
は、ASCII の '7', 'K' と区別がつかない。両者を混在させるには何らかの工
夫が必要になる。
情報科学センターの Solaris (UNIX) 環境では日本語 EUCという
文字コードを用いている。やはり emacs を用いて
というファイルを作成して、
od -cx kanji.txt としてみると、
「桂」が 0xb7, 0xcb という 2 バイトで表現されていることが分かる。
これは JIS コードの上下 8 ビットに
それぞれ 0x80 を加えたものになっている:
(もともと ASCII で用いている数値は 0x7f までで、0x80 以上の数値は使わ
れずにあ空いている。
その部分に JIS コード表の文字を埋め込んだことになっている。)
日本語 EUC 以外にも、ASCII の文字と日本語の文字を混在を可能にした文
字コードはいくつかある。
準備: nkf を用いて kanji.txt の文字コードを変換する |
isc-xas5% nkf -j kanji.txt > kanji-jis.txt |
|
isc-xas5% nkf -s kanji.txt > kanji-ms.txt |
|
|
(nkf については、付録 A を見よ。)
- 通称「JIS 漢字」
- 通信により情報を交換するために作られた国際的な規格に従ったもの。
文字コードを切り替えるために、
目印となる特別な文字列13を用いる。
電子メイルなどで、
日本語メッセージの通信をするときに最もよく使われる ISO-2022-JP (後述) の
基礎となった。
実は kterm では JIS 漢字のデータも普通に表示できる。
isc-xas06% cat kanji-jis.txt
桂田 祐史
isc-xas06% od -cx kanji-jis.txt
0000000 033 $ B 7 K E D 033 ( B 033 $ B M 4
1b24 4237 4b45 441b 2842 201b 2442 4d34
0000020 ; K 033 ( B \n
3b4b 1b28 420a
0000026
|
「桂」の JIS コードである 0x37, 0x4b が現われている。
- 通称「MS 漢字 (シフトジス)」
- パソコンの世界のために作られた規格 (Windows, Mac などで採用されている)。
「半角カタカナ」も効率的に埋め込まれている。
情報科学センターのワークステーションの通常の設定では直接表示できない
(ただし emacs では扱える)。
isc-xas06% cat kanji-ms.txt
jc S (いわゆる文字化け)
isc-xas06% od -cx kanji-ms.txt
0000000 214 j 223 c 227 S 216 j \r \n
8c6a 9363 2097 538e 6a0d 0a00
0000013
isc-xas06%
|
「桂」が 0x8c, 0x6a となっているが、
どういうルールで変換されているかはちょっと分かりづらい。
付録 D に JIS を MS 漢字に直す C の関数をあげておく。
Next: 腕試し用プログラミング課題1
Up: 3 テキスト・ファイル
Previous: 3.3 ASCII コード表を作ろう
Masashi Katsurada
平成20年10月18日