C++ Unicode/UTF-8中文 相互转换

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);

}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注