C++ Unicode/UTF-8中文 相互转换
需求一
中文 ”你好啊“ ———-unicode———-> \u4F60\u597D\u554A
unicode编码字符串转中文。
例: “4F60597D554A” —> “你好啊”
解决方式
需求二
unicode 字节数组转中文
例:0x89 0x7F 0x5B 0x89 0x8D 0xEF —> 西安路
解决方式
需求三 中英文转unicode
asd你好阿 —-> 0061007300644f60597d963f
解决方式
string 与 wstring 的转换
#include <codecvt>
#include <string>
std::wstring s2ws(const std::string& str{
using convert_typeX = std::codecvt_utf8<wchar_t>;
std::wstring_convert<convert_typeX, wchar_t> converterX;
return converterX.from_bytes(str);
}
std::string ws2s(const std::wstring& wstr)
{
using convert_typeX = std::codecvt_utf8<wchar_t>;
std::wstring_convert<convert_typeX, wchar_t> converterX;
return converterX.to_bytes(wstr);
}