通知
すべてクリア
Topic starter
2011年7月29日 11:23 AM
はじめまして
VC++による文字コード変換について質問です。
環境はVC++2005 UNICODE文字
例えばcharの配列に以下の文字が入っているとします。
1バイト→0xE3
2バイト→0x81
3バイト→0x86
これはUTF-8の文字コードだと
%E3%81%82 → あ
となりますが
これをCString型の
2バイト文字のあに変換するにはどのようにしたらいいですか?
WideCharToMultiByte等を使用すればいいのかな?と模索中です。。
アドバイス頂けると非常に助かります。
宜しくお願いします。
Topic starter
2011年7月29日 11:43 AM
すみません。
自己解決しました。
MultiByteToWideCharを使う事であっさりと変換できました。
コードは以下のようなのですが。
wchar_t bufDst[100];
wmemset( bufDst , NULL , 100 );
int nLen = ::MultiByteToWideChar(CP_UTF8, 0, ( LPCSTR )buf , -1, NULL,0);
::MultiByteToWideChar( CP_UTF8 , 0 , ( LPCSTR )buf , nLen , ( LPWSTR )bufDst ,
nLen );
但し、第6引数には変換後の文字サイズを設定しないといけないので、
現状ではバッファ数に変更しようと思います。