Я изо всех сил пытаюсь начать работу с библиотекой ICU C++. Я попытался заставить простейший пример работать, но даже это провалилось. Я просто хотел бы выводить строку UTF-8, а затем перейти оттуда.Выход C++ UTF-8 с ICU
Вот что у меня есть:
#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, будут все равно.
Любая помощь будет оценена, спасибо.
Вы пытались использовать std :: wcout? – Milan
Да, но ICU, похоже, не предоставляет оператора << для него, поэтому я просто получаю длинный список ошибок из g ++. – Isaac
Вы отправили ошибку на wcout? (пожалуйста? :) (с обоснованием?) –