Last Updated 2004/02/12
Programming Tips Windows  索 引 
EUCとJISとShiftJISの変換規則
2004/02/12

文字コードは EUC や JIS や ShiftJIS などが存在する.
その相互の変換規則は以下のとおりである.

EUCJIS
0 〜 0x7FASCII
0x8E80 〜 0x8EFF1Byte カナ + 0x8E00
0x9000 〜漢字 + 0x8000
JIS と SJIS の変換は以下の感じである. int jis2sjis(int c) { int hi, lo; hi = (c>>8) & 0xff; lo = c & 0xff; if( hi & 1 ) lo += 0x1f; else lo += 0x7d; hi = (hi - 0x21 >> 1) + 0x81; if( lo >= 0x7f ) lo++; if( hi > 0x9f ) hi += 0x40; return hi << 8 | lo; } int sjis2jis(int c) { int hi, lo; hi = (c>>8) & 0xff; lo = c & 0xff; hi -= ( hi<=0x9f ) ? 0x71 : 0xb1; hi = hi*2 + 1; if( lo > 0x7f ) lo--; if( lo >= 0x9e ) { lo -= 0x7d; hi++; } else lo -= 0x1f; return hi << 8 | lo; }
参照
前後のTips
EUCとJISとShiftJISの変換規則

DSS ProgrammingTipsCGI Ver2.02