>>70
//文字列の変換はめんどくさいから漢字一文字分(戻り値は変換済みバイト数)
int sjis2euc(unsigned char * dest, unsigned char * src)
{
unsigned code1 = src[0];
code1 = code1 * 2 - 0xe1;
code1 &= 0x7f;// 1バイトカナの隙間
unsigned code2 = src[1];
code2 -= 0x1f;
if (code2 > 0x7f - 0x1f) {// 0x7fの穴
--code2;
}
if (code2 >= 0x7f) {// 偶数ブロック
code2 -= 0x5e;
++code1;
}
dest[0] = code1 | 0x80;
dest[1] = code2 | 0x80;
return 2;
}
//一バイトカナはこれ(戻り値は上と同じ)
int sjis2eucKana(unsigned char * dest, unsigned char * src)
{
dest[0] = 0x8e;
dest[1] = str[0];
return 2;
}
//後はコードの判断ロジック(暇があったら後でね)