C++ – 将Unicode std::wstring字符串转换为Unicode std::string转义字符,类似于\uxxxx的形式
1 将Unicode字符转换为\uxxxx转义字符
实现效果:
将:
你好
转换为:
u4f60\u597d
的形式。
1.1 C++代码
#include <iostream>
#include <sstream>
#include <iomanip>
std::string ConvertWStringToUnicodeEscape(const std::wstring& unicode_str)
{
std::wstring unicode_str_copy = unicode_str;
std::stringstream ss;
for (std::wstring::iterator iter = unicode_str_copy.begin(); iter != unicode_str_copy.end(); ++iter)
{
if (*iter <= 127)
ss << (char)*iter;
else
ss << "\\u" << std::hex << std::setfill('0') << std::setw(4) << (int)*iter;
}
return ss.str();
}
int main()
{
std::wstring inputStr = L"你好世界,helloworld";
std::string unicode_str = ConvertWStringToUnicodeEscape(inputStr);
std::cout << unicode_str << std::endl;
return 0;
}
运行结果:
随便找一个在线Unicode中文互转网站,测试一下:
转换结果是对的。
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 将Unicode std::wstring字符串转换为Unicode std::string转义字符,类似于\uxxxx的形式
原文链接:https://www.stubbornhuang.com/1858/
发布于:2021年12月10日 13:17:14
修改于:2023年06月26日 20:58:31
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52