- 我已经知道“codecvt”、“WideCharToMultiByte”和其他人。
我使用韩语。例如。 '안녕하세요'。
它的消息可以插入普通的字符串类。对吧?
但就我而言。如果我有文件::'test.txt' {in::'안녕하세요'}
并读取“test.txt”和 getline(),
(test.txt file read)
string temp;
getline(file pointer, temp);
cout<<temp;
现在我使用 cout。哒哒!消息已损坏!
我知道这是 WideCharacter 问题。所以我尝试了 MultiByteToWideChar 方法。
好的。它运行良好。
但我不想要这个。
最后我想读取宽字 rune 件,并保存 'string' 变量。
所以,我为你提问。
如何在“不更改消息”时将 UTF-16(宽字符/wstring)转换为 UTF-8(多字节/字符串)?
::我想要这种风格
wstring temp = "안녕하세요"
string temp2 = convert_to_string(temp);
->
string temp2 = "안녕하세요"
最佳答案
评论中提到,可以看到Convert C++ std::string to UTF-16-LE encoded string有关如何进行转换的代码。
但是如果您假设您有 wstring
来保存您的韩文字符串,您就避免了区分 UTF-16-LE 和 UTF-16-BE 的麻烦,并且您可以很容易地找到 Unicode 代码点字符串中的每个韩文字符。所以你的问题归结为找到任何代码点的 UTF-8 表示。这并不难,请参阅 https://www.rfc-editor.org/rfc/rfc3629 的第 3 页(还有维基百科 https://en.wikipedia.org/wiki/UTF-8 )。
关于c++ - 如何使用 C++ 将 UTF-16 转换为 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53781925/