SJISからJISへの変換規則
漢字コードの第一バイト(上位バイト)をHIGH
第二バイト(下位バイト)をLOW
とする。
HIGHが0x9F以下なら HIGH=HIGH-0x71
それ以外なら HIGH=HIGH-0xB1
(無条件) HIGH=HIGH×2+1
LOWの値が0x7Fより大きいなら LOW=LOW-0x01
LOWの値が0x9E以上なら LOW=LOW-0x7D HIGH=HIGH+1
それ以外なら LOW=LOW-0x1F
プログラム例
char *sjistojis(unsigned char sjis[2])
{
static unsigned char jis[2];
jis[0]=sjis[0];
jis[1]=sjis[1];
if(jis[0]<=0x9f)
jis[0]-=0x71;
else
jis[0]-=0xb1;
jis[0]*=2;
jis[0]++;
if(jis[1]>=0x7F)
jis[1]-=0x01;
if(jis[1]>=0x9e){
jis[1]-=0x7d;
jis[0]++;
}else
jis[1]-=0x1f;
return jis;
}
漢字コードのページに戻る。