掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
UTF8→UTF16の変換方法 (ID:64164)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ほかの掲示板でUTF8->CStringのコードを書いたのでちょっといじってみた。 http://m--takahashi.com/bbs/default.aspx?c=14061 #include <afxwin.h> #include <comdef.h> BOOL UTF8ToUTF16(const char*& data, const DWORD len, _bstr_t& text) { BOOL result = FALSE; text = L""; if (!data) return FALSE; if (!len) return TRUE; const int wlen = ::MultiByteToWideChar(CP_UTF8, 0, data, len, NULL, 0); if (!wlen) return FALSE; WCHAR* buff = new WCHAR[wlen + 1]; if (::MultiByteToWideChar(CP_UTF8, 0, data, len, buff, wlen)) { result = TRUE; buff[wlen] = L'\0'; text = buff; } delete[] buff; return result; } int main() { // UTF-8の あいうえお const char* str = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"; _bstr_t bs; if (UTF8ToUTF16(str, strlen(str), bs)) { ::MessageBoxW(NULL, bs, L"", MB_OK); } return 0; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.