Non riesco a iniziare con la libreria ICU C++. Ho cercato di ottenere l'esempio più semplice per funzionare, ma anche quello ha fallito. Vorrei solo produrre una stringa UTF-8 e poi andare da lì.Uscita C++ UTF-8 con ICU
Ecco quello che ho:
#include <unicode/unistr.h>
#include <unicode/ustream.h>
#include <iostream>
int main()
{
UnicodeString s = UNICODE_STRING_SIMPLE("привет");
std::cout << s << std::endl;
return 0;
}
Ecco l'output:
$ g++ -I/sw/include -licucore -Wall -Werror -o icu_test main.cpp
$ ./icu_test
пÑивеÑ
mio supporto del terminale e il carattere UTF-8 e io uso regolarmente il terminale con UTF-8. Il mio codice sorgente è in UTF-8.
Penso che forse ho in qualche modo bisogno di impostare il flusso di output su UTF-8 perché ICU memorizza stringhe come UTF-16, ma non sono sicuro e avrei pensato che gli operatori forniti da ustream.h avrebbero fallo comunque.
Qualsiasi aiuto sarebbe apprezzato, grazie.
hai provato a usare std :: wcout? – Milan
Sì, ma ICU non sembra fornire un operatore << per questo, quindi ho solo una lunga lista di errori da g ++. – Isaac
Hai archiviato un bug su wcout? (per favore? :) (con giustificazione?) –