如何使用 C++ 将 UTF-16 转换为 UTF-8?
How to convert UTF-16 to UTF-8 using C++?
- 我已经认识 'codecvt'、'WideCharToMultiByte' 和某人。
我使用韩语。例如。 '안녕하세요'.
消息可以插入普通字符串class。对吗?
但就我而言。如果我有文件 :: 'test.txt' {in :: '안녕하세요'}
并读取 'test.txt',以及 getline(),
(test.txt file read)
string temp;
getline(file pointer, temp);
cout<<temp;
现在我使用 cout。哒哒!消息已损坏!
我知道这是 WideCharacter 问题。所以我尝试了 MultiByteToWideChar 方法。
好的。效果不错。
但我不想要这个
最后我想读取宽字符文件,并保存 'string' 变量。
所以,我为你提问。
如何在 'Not change message' 时将 UTF-16 (widecharcter/wstring) 转换为 UTF-8 (multibyte/string)?
::我想要这种风格
wstring temp = "안녕하세요"
字符串 temp2 = convert_to_string(temp);
->
string temp2 = "안녕하세요"
如评论中所述,有关如何进行转换的代码,请参阅。
但是假设你有 wstring
来保存你的韩语字符串,你就避免了区分 UTF-16-LE 和 UTF-16-BE 的麻烦,你可以很容易地找到每个的 Unicode 代码点字符串中的韩文字符。所以你的问题归结为找到任何代码点的 UTF-8 表示。这并不难,请参阅 https://www.rfc-editor.org/rfc/rfc3629 (also Wikipedia https://en.wikipedia.org/wiki/UTF-8 的第 3 页)。
示例代码在
Convert Unicode code points to UTF-8 and UTF-32
- 我已经认识 'codecvt'、'WideCharToMultiByte' 和某人。
我使用韩语。例如。 '안녕하세요'.
消息可以插入普通字符串class。对吗?
但就我而言。如果我有文件 :: 'test.txt' {in :: '안녕하세요'}
并读取 'test.txt',以及 getline(),
(test.txt file read)
string temp;
getline(file pointer, temp);
cout<<temp;
现在我使用 cout。哒哒!消息已损坏!
我知道这是 WideCharacter 问题。所以我尝试了 MultiByteToWideChar 方法。
好的。效果不错。
但我不想要这个
最后我想读取宽字符文件,并保存 'string' 变量。
所以,我为你提问。
如何在 'Not change message' 时将 UTF-16 (widecharcter/wstring) 转换为 UTF-8 (multibyte/string)?
::我想要这种风格
wstring temp = "안녕하세요"
字符串 temp2 = convert_to_string(temp);
->
string temp2 = "안녕하세요"
如评论中所述,有关如何进行转换的代码,请参阅
但是假设你有 wstring
来保存你的韩语字符串,你就避免了区分 UTF-16-LE 和 UTF-16-BE 的麻烦,你可以很容易地找到每个的 Unicode 代码点字符串中的韩文字符。所以你的问题归结为找到任何代码点的 UTF-8 表示。这并不难,请参阅 https://www.rfc-editor.org/rfc/rfc3629 (also Wikipedia https://en.wikipedia.org/wiki/UTF-8 的第 3 页)。
示例代码在 Convert Unicode code points to UTF-8 and UTF-32