UTF-8 3バイト文字変換 – プログラミング – Home

通知
すべてクリア

[解決済] UTF-8 3バイト文字変換


ろっく
 ろっく
(@ろっく)
ゲスト
結合: 20年前
投稿: 7
Topic starter  

はじめまして

VC++による文字コード変換について質問です。

環境はVC++2005 UNICODE文字

例えばcharの配列に以下の文字が入っているとします。

1バイト→0xE3
2バイト→0x81
3バイト→0x86

これはUTF-8の文字コードだと

%E3%81%82 → あ

となりますが

これをCString型の
2バイト文字のあに変換するにはどのようにしたらいいですか?

WideCharToMultiByte等を使用すればいいのかな?と模索中です。。

アドバイス頂けると非常に助かります。
宜しくお願いします。


引用未解決
トピックタグ
ろっく
 ろっく
(@ろっく)
ゲスト
結合: 20年前
投稿: 7
Topic starter  

すみません。

自己解決しました。

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引数には変換後の文字サイズを設定しないといけないので、
現状ではバッファ数に変更しようと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました