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