#include #include const char chars[] = { ' ', '.', '1', 'A', 0x81,0x40, /* double-byte space */ 0x82,0x60, /* double-byte A */ 0x82,0xA6, /* double-byte Hiragana */ 0x83,0x42, /* double-byte Katakana */ 0xA1, /* single-byte Katakana punctuation */ 0xA6, /* single-byte Katakana alphabetic */ 0xDF, /* single-byte Katakana alphabetic */ 0xE0,0xA1, /* double-byte Kanji */ 0x00 }; void main() { int i, j, k; _setmbcp( 932 ); printf( "Character encodings are %sstate dependent\n", ( mblen( NULL, MB_CUR_MAX ) ) ? "" : "not " ); j = 1; for( i = 0; j > 0; i += j ) { j = mblen( &chars[i], MB_CUR_MAX ); printf( "%d bytes in character ", j ); if( j == 0 ) { k = 0; } else if ( j == 1 ) { k = chars[i]; } else if( j == 2 ) { k = chars[i]<<8 | chars[i+1]; } printf( "(%#6.4x)\n", k ); } }