Estoy luchando para comenzar con la biblioteca de ICU de C++. He intentado que funcione el ejemplo más simple, pero incluso eso ha fallado. Me gustaría dar salida a una cadena UTF-8 y luego ir desde allí.C++ UTF-8 de salida con ICU
Aquí es lo que tengo:
#include <unicode/unistr.h>
#include <unicode/ustream.h>
#include <iostream>
int main()
{
UnicodeString s = UNICODE_STRING_SIMPLE("привет");
std::cout << s << std::endl;
return 0;
}
Aquí está la salida:
$ g++ -I/sw/include -licucore -Wall -Werror -o icu_test main.cpp
$ ./icu_test
пÑивеÑ
Mi soporte del terminal y la fuente UTF-8 y uso regularmente el terminal con UTF-8. Mi código fuente está en UTF-8.
Creo que de alguna manera necesito configurar el flujo de salida a UTF-8 porque la ICU almacena cadenas como UTF-16, pero realmente no estoy seguro y hubiera pensado que los operadores proporcionados por ustream.h haz eso de todos modos.
Cualquier ayuda sería apreciada, gracias.
¿Ha intentado utilizar std :: wcout? – Milan
Sí, pero la ICU no parece proporcionar un operador << por eso, así que acabo de obtener una larga lista de errores de g ++. – Isaac
¿Has presentado un error en wcout? (¿por favor? :) (con justificación?) –