我正在努力开始使用 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;
}
这是输出:
$ g++ -I/sw/include -licucore -Wall -Werror -o icu_test main.cpp
$ ./icu_test
пÑивеÑ
我的终端和字体支持 UTF-8,我经常使用带有 UTF-8 的终端。我的源代码是 UTF-8。
我认为也许我需要以某种方式将输出流设置为 UTF-8,因为 ICU 将字符串存储为 UTF-16,但我真的不确定,我会认为 ustream.h 提供的运算符无论如何都会这样做。
任何帮助将不胜感激,谢谢。