[英]utf8 and utf16 conversion
我有一个wchar_t字符串,例如L“ hao123--我的上网主页”,我可以将其转换为utf8
编码,输出字符串是“ hao123锛嶏紞鎴戠殑涓婄绣涓婚〉”,但是最后,我必须写这个
字符串转换为纯文本文件,其格式为utf16(我从其他人知道),“ hao123 \\ uFF0D \\ uFF0D \\ u6211 \\ u7684 \\ u4E0A \\ u7F51 \\ u4E3B \\ u9875”。
因为我必须将其保存在C ++ std字符串中,然后将其写入文件,所以我该如何转换
char或C ++ std字符串中的“ hao123锛嶏紞鎴戠殑涓婄绣涓婚〉”到“ hao123 \\ uFF0D \\ uFF0D \\ u6211 \\ u7684 \\ u4E0A \\ u7F51 \\ u4E3B \\ u9875”?
谁能给我一些提示?
提前致谢!
在C ++ 11中,可以使用:
#include <locale>
#include <codecvt>
#include <string>
#include <iostream>
int main()
{
std::wstring_convert<std::codecvt_utf16<wchar_t> > myconv;
std::wstring ws(L"hao123--\x6211\x7684\x4E0A\x7F51\x4E3B\x9875");
std::string bs = myconv.to_bytes(ws);
std::cout << bs << '\n';
}
我自己编写了转换函数,有关更多信息,请访问C ++ Unicode UTF-16编码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.