我使用韩语。例如。 “안녕하세요”。
该消息可以插入普通的字符串类。对吧?
但就我而言。如果我有文件::'test.txt'{in ::'안녕하세요'}
然后阅读'test.txt'和getline(),
(test.txt file read)
string temp;
getline(file pointer, temp);
cout<<temp;
现在我使用cout。塔达!信息已损坏!
我知道这是WideCharacter问题。所以我尝试了MultiByteToWideChar方法。
好的。很好。
但是我不想要这个。
最后,我想读取Widecharcter文件,并保存“字符串”变量。
所以,我要问你。
当“不更改消息”时如何将UTF-16(宽字符/ wstring)转换为UTF-8(多字节/字符串)?
::我想要这种风格
wstring temp =“안녕하세요”
string temp2 = convert_to_string(temp);
->
字符串temp2 =“안녕하세요”
答案 0 :(得分:2)
如评论中所述,您可以在Convert C++ std::string to UTF-16-LE encoded string中找到有关如何进行转换的代码。
但是假设您拥有wstring
来保存韩文字符串,就避免了区分UTF-16-LE和UTF-16-BE的麻烦,并且可以轻松找到每个韩文字符的Unicode代码点在字符串中。因此,您的问题归结为找到任何代码点的UTF-8表示形式。并不难,请参阅https://tools.ietf.org/html/rfc3629(也是Wikipedia https://en.wikipedia.org/wiki/UTF-8)的第3页。