Я изо всех сил пытаюсь начать работу с библиотекой 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, будут делать в любом случае.
Любая помощь будет оценена, спасибо.