我试图将C++转换std::string为UTF-8或std::wstring不丢失信息(考虑包含非ASCII字符的字符串).
根据http://forums.sun.com/thread.jspa?threadID=486770&forumID=31:
如果std :: string具有非ASCII字符,则必须提供一个从编码转换为UTF-8的函数[...]
std::string.c_str()使用什么编码?如何将其转换为UTF-8或std::wstring跨平台方式?
如果我有一个字符串:
std::string s = u8"??";
Run Code Online (Sandbox Code Playgroud)
在C ++ 20中
std::u8string s = u8"??";
Run Code Online (Sandbox Code Playgroud)
有何std::u8string不同std::string?
我可以写这样的代码:
const char * a = "??";
cout<<a;
Run Code Online (Sandbox Code Playgroud)
但是当这样写时:
char a[] = {'?','?'};
cout<<a;
Run Code Online (Sandbox Code Playgroud)
它输出这样的乱码:
我以为汉字存储在wchar_t,
那么如何const char *包含汉字呢?