c++Unicode、UTF8、ANSI 字符串转换

c++Unicode、UTF8、ANSI 字符串转换,第1张

c++Unicode、UTF8、ANSI 字符串转换

string qUnicodeToAnsi(wstring &buf)
{
int len = ::WideCharToMultiByte(CP_ACP, 0, buf.data(), buf.size(), NULL, 0, NULL, NULL);
if (len == 0) return “”;

std::vector utf8(len);
len = ::WideCharToMultiByte(CP_ACP, 0, buf.data(), buf.size(), &utf8[0], len, NULL, NULL);

return string(&utf8[0],len);

}

wstring qAnsiToUnicode(string &buf)
{
int len = ::MultiByteToWideChar(CP_ACP, 0, buf.data(), buf.size(), NULL, 0);
if (len == 0) return L"";

std::vector unicode(len);
len = ::MultiByteToWideChar(CP_ACP, 0, buf.data(), buf.size(), &unicode[0], len);
return wstring(&unicode[0],len);

}

wstring qUtf8ToUnicode(string &buf)
{
int len = ::MultiByteToWideChar(CP_UTF8, 0, buf.data(), buf.size(), NULL, 0);
if (len == 0) return L"";

std::vector unicode(len);
len = ::MultiByteToWideChar(CP_UTF8, 0, buf.data(), buf.size(), &unicode[0], len);

return wstring(&unicode[0],len);

}

string qUnicodeToUtf8(wstring &buf)
{
int len = ::WideCharToMultiByte(CP_UTF8, 0, buf.data(), buf.size(), NULL, 0, NULL, NULL);
if (len == 0) return “”;

std::vector utf8(len);
len = ::WideCharToMultiByte(CP_UTF8, 0, buf.data(), buf.size(), &utf8[0], len, NULL, NULL);

return string(&utf8[0],len);

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5503750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存