シフトJISコードをEUCコードに変換する


関数名
sjis2euc  シフトJISコードをEUCコードに変換する
形式
unsigned int sjis2euc(unsigned int sjis);
引数
sjis  シフトJISコード
関数値
EUCコード
注意事項

用例(sjis2euc-test.c
sjis2euc(0x8abf);

プログラム(sjis2euc.c
unsigned int sjis2euc(unsigned int sjis)
{
    unsigned int hib, lob;
    
    hib = (sjis >> 8) & 0xff;
    lob = sjis & 0xff;
    hib -= (hib <= 0x9f) ? 0x71 : 0xb1;
    hib = (hib << 1) + 1;
    if (lob >= 0x9e) {
        lob -= 0x7e;
        hib++;
    } else if (lob > 0x7f) lob -= 0x20;
    else lob -= 0x1f;

    hib |= 0x80;
    lob |= 0x80;

    return (hib << 8) | lob;
}
説明
シフトJISコードは Microsoft漢字コードともよばれ、現在の ところ最も広く使用されている8ビット系漢字コードであり、パソコン 上の標準漢字コードでもある。

一方、EUCコードはUNIX上で広く使われている8ビット系漢字コード であり、JISコードの第1バイト、第2バイトの両方に0x80を加算した ものを使用する。

関連関数
JISコードをSJISに変換するJISコードをEUCに変換するSJISコードをJISに変換するEUCコードをJISに変換するEUCコードをSJISに変換する