仕様が何処かで食い違ってしまったようで、日本語をUTF8形式で保存したものを、
S-JIS形式で表示させる事になってしまった・・・
と云う訳で、なんとかした時のプログラム(一部抜粋)が以下のもの。
UTF8形式を直接S-JIS形式に変換する方法が解らず、UTF8形式を一度UNICODE形式に変換してから、
S-JIS形式に再度変換すると云う、面倒な手順になってしまった。
char strutf8[128]; // UTF-8形式コード格納バッファ
memset(strutf8,0x00,sizeof(strutf8));
// UTF8形式のデータを読み込み。
memcpy(strutf8,ctleld.mToolBody.mManufacturer,
sizeof(ctleld.mToolBody.mManufacturer));
char struni[256]; // UNICODE形式コード格納バッファ
memset(struni,0x00,sizeof(struni));
char strsjis[128]; // S-JIS形式コード格納バッファ
memset(strsjis,0x00,sizeof(strsjis));
// S-JIC -> UNICODEの変換
::MultiByteToWideChar(CP_UTF8,0,
strutf8,-1,
(unsigned short *struni,sizeof(struni));
::WideCharToMultiByte(CP_ACP,0,
(const unsigned short *)struni,-1,
strsjis,sizeof(strsjis),
NULL,NULL); // UNICODE -> UTF-8の変換
TOP|知恵袋|VC++の小細工
|