漢字コードの変換
コンピュータの通信の中で、異機種間で行う場合に、お互いの漢字コードが問題になる場合があります。
最近では、コンピュータ・メーカ提供のツールでコンバートできますが、ココでは11年前に私がCOBOLで漢字変換を行ったときのフローを紹介します。
1.文中の略文字の意味
漢字の第一Byte 漢字の第二Byte
10100001 10100001
略文字 : HI LO
ビット位置: 151413121110 9 8 7 6 5 4 3 2 1 0[M:N]: M:スタートビット位置
N:長さX:変換後の上位8ビットを格納
Y:変換後の下位8ビットを格納(9F)h:16進数の 9F
2.漢字コード範囲
Shift-JIS
(81)h ≦ HI ≦ (9F)h または (E0)h ≦ HI ≦ (FC)h
(40)h ≦ LO ≦ (7E)h または (80)h ≦ LO ≦ (FC)hJIS7
(21)h ≦ HI ≦ (7E)h
(21)h ≦ LO ≦ (7E)hJIS8
(A1) ≦ HI ≦ (FE)h
(A1) ≦ LO ≦ (FE)h
3.Shift-JIS -> JIS7
4.JIS8 -> Shift-JIS
漢字の第一Byte
漢字の第二Byte
5.JIS7 -> JIS8
HI = HI + (80)h
LO = LO + (80)h
6.JIS8 -> JIS7
HI = HI - (80)h
LO = LO - (80)h
このパターンを組み合わせて、各種、コード変換のツールを作成しました。(未だに動いているみたいですが。。。)