我在Linux上遇到了中文字符串显示问题。
我正在开发一个应用程序,需要在Windows和Linux上显示UTF8中文。
下面是我的代码。字符串是从网络上解析的。
#include <unicode/unistr.h>
std::string utf8String = "1101\241@\245x\252d"; // "1101 台泥"
icu::UnicodeString unicodeString = icu::UnicodeString::fromUTF8(utf8String.c_str());
const UChar* utf16Data = unicodeString.getBuffer();
std::wcout << "Decoded UTF-16 Data: " << utf16Data << std::endl;
字符串
在Windows环境下,内容显示正常。
但在Linux上,内容将是无法识别的东西,如下面的值“utf 16 Data”。
请告诉我如何在Linux上转换/解码它。
谢谢你,谢谢
x1c 0d1x的数据
1条答案
按热度按时间dba5bblo1#
如果支持,请使用:
字符串
或者简单地说:
型
保存 * 源文件 * 为UTF-8,并使用
/utf-8
开关在Microsoft的编译器上编译。那么相同的源代码应该可以在Linux上正常工作。