c++ UTF-8跨操作系统显示问题

myzjeezk  于 2024-01-09  发布在  其他
关注(0)|答案(1)|浏览(134)

我在Linux上遇到了中文字符串显示问题。
我正在开发一个应用程序,需要在Windows和Linux上显示UTF8中文。
下面是我的代码。字符串是从网络上解析的。

  1. #include <unicode/unistr.h>
  2. std::string utf8String = "1101\241@\245x\252d"; // "1101 台泥"
  3. icu::UnicodeString unicodeString = icu::UnicodeString::fromUTF8(utf8String.c_str());
  4. const UChar* utf16Data = unicodeString.getBuffer();
  5. std::wcout << "Decoded UTF-16 Data: " << utf16Data << std::endl;

字符串
在Windows环境下,内容显示正常。
但在Linux上,内容将是无法识别的东西,如下面的值“utf 16 Data”。
请告诉我如何在Linux上转换/解码它。
谢谢你,谢谢
x1c 0d1x的数据

dba5bblo

dba5bblo1#

如果支持,请使用:

  1. std::string utf8String = u8"1101 台泥"

字符串
或者简单地说:

  1. std::string utf8String = "1101 台泥"


保存 * 源文件 * 为UTF-8,并使用/utf-8开关在Microsoft的编译器上编译。
那么相同的源代码应该可以在Linux上正常工作。

相关问题