繁体   English   中英

如何将以utf16编码的字符串转换为以UTF-8编码的字符串?

[英]How to convert a string encoded in utf16 to a string encoded in UTF-8?

我有一个字符串或char [],但是它是用utf-16编码的,如下所示:

在此处输入图片说明

现在,我想用新字符串将其转换为utf-8,请帮助我! 我已经这样尝试过:

在此处输入图片说明

但是编译器告诉我我有问题。 如何解决这个问题呢?

问题很明显:当cvt.to_bytes()期望std::u16string (作为变量名称建议)时,您将u16_str定义为std::string

以下代码对我有用

#include <locale>
#include <codecvt>
#include <iostream>

int main ()
 {
   std::u16string  u16_str { u"aeiuoàèìòùAEIOU" };

   std::wstring_convert<std::codecvt_utf8<char16_t>, char16_t> cvt;

   std::string  u8_str = cvt.to_bytes(u16_str);

   std::cout << u8_str << std::endl;

   return 0;
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM