如何使用C++将UTF-16转换为UTF-8


  • 我已经认识"codecvt"、"WideCharToMultiByte"和其他人

我使用韩语。例如안녕하세요'.

It消息可以插入普通字符串类。正确的

但就我而言。如果我有文件::'test.txt'{in::'안녕하세요'}

并读取"test.txt"和getline((,

(test.txt file read)
string temp;
getline(file pointer, temp);
cout<<temp;

现在我用cout。大大!消息已损坏!

我知道这是WideCharacter的问题。所以我字符串MultiByteToWideChar方法。

好的。它工作得很好。

但我不想要这个。

最后,我想读取宽字符文件,并保存"字符串"变量。

所以,我向你提问。

当"不更改消息"时,如何将UTF-16(宽字符/wstring(转换为UTF-8(多字节/string(?

::我想要这种风格的

wstring temp="안녕하세요">

string temp2=convert_to_string(temp(;

->

string temp2="안녕하세요">

如注释中所述,您可以看到将C++std::string转换为UTF-16-LE编码的字符串,了解如何进行转换的代码。

但是,假设你有wstring来保存你的朝鲜语字符串,你就避免了区分UTF-16-LE和UTF-16-BE的麻烦,你可以很容易地找到字符串中每个朝鲜语字符的Unicode代码点。因此,您的问题归结为找到任何代码点的UTF-8表示。这并不难,请参阅第3页https://www.rfc-editor.org/rfc/rfc3629(另见维基百科https://en.wikipedia.org/wiki/UTF-8)。

示例代码位于将Unicode代码点转换为UTF-8和UTF-32

相关内容

  • 没有找到相关文章

最新更新