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


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

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

プログラム(sjis2jis.c
unsigned int sjis2jis(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 > 0x7f) lob--;
    if (lob >= 0x9e) {
        lob -= 0x7d;
        hib++;
    } else lob -= 0x1f;

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

一方、JISコードは7ビット系漢字コードであり、JIS規格により定め られた日本国内の標準漢字コード(のはず)である。とくに、かな・ 漢字を含めたインターネット・メールには普通、JISコードが使われ ている。

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