漢字コードの変換


コンピュータの通信の中で、異機種間で行う場合に、お互いの漢字コードが問題になる場合があります。

最近では、コンピュータ・メーカ提供のツールでコンバートできますが、ココでは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)h

JIS7

(21)h ≦ HI ≦ (7E)h
(21)h ≦ LO ≦ (7E)h

JIS8

(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

このパターンを組み合わせて、各種、コード変換のツールを作成しました。(未だに動いているみたいですが。。。)



注意 : これは、私個人の覚え書きであり、何も保証するもではありません。自己責任でお読み下さい。  
Create:2002/04/25   Last modified:2009/10/02
Copyright (c) 2002-2013 Yoshi All Rights Reserved