sjis2euc シフトJISコードをEUCコードに変換する
unsigned int sjis2euc(unsigned int sjis);
sjis シフトJISコード
EUCコード
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;
}
一方、EUCコードはUNIX上で広く使われている8ビット系漢字コード であり、JISコードの第1バイト、第2バイトの両方に0x80を加算した ものを使用する。