小编Isa*_*aac的帖子

带ICU的C++ UTF-8输出

我很难开始使用C++ ICU库.我试图让最简单的例子起作用,但即使这样也失败了.我只想输出一个UTF-8字符串,然后从那里开始.

这是我有的:

#include <unicode/unistr.h>
#include <unicode/ustream.h>

#include <iostream>

int main()
{
    UnicodeString s = UNICODE_STRING_SIMPLE("??????");

    std::cout << s << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

$ g++ -I/sw/include -licucore -Wall -Werror -o icu_test main.cpp 
$ ./icu_test 
пÑивеÑ
Run Code Online (Sandbox Code Playgroud)

我的终端和字体支持UTF-8,我经常使用带UTF-8的终端.我的源代码是UTF-8.

我想也许我不知何故需要将输出流设置为UTF-8,因为ICU将字符串存储为UTF-16,但我真的不确定,我会认为ustream.h提供的运算符无论如何都会这样做.

任何帮助将不胜感激,谢谢.

c++ stream utf-8 icu

12
推荐指数
1
解决办法
5941
查看次数

标签 统计

c++ ×1

icu ×1

stream ×1

utf-8 ×1