[Install] C++ e QT4 - Problemi caratteri accentati.
Inviato: venerdì 15 agosto 2008, 13:55
Premetto che ho cercato su google e su vari forum ma tuttora non ho trovato la soluzione.
Ho un programma realizzato in C++, che utilizza le librerie QT4. I files .h e .cpp sono salvati con codifica UTF-8.
Quando esegui i file binario ocmpilato, i messaggi nella GUI visualizzano in modo sbagliato le lettere accentate:
Per spiegarmi meglio faccio vedere un pezzo di codice:
Ad esempio in questa funzione membro della classe frmMain (l'unica finestra che il programma usa)
la riga:
QMessageBox Mostra questo messaggio:

E si vede chiaramente che le lettere accentate non vengono visualizzate correttamente.
Mentre cout mostra:

E qui le lettere accentate si vedono bene
Non capisco, il problema sembra dipenda dalle librerie QT4 che mal sopportano l'UTF8, se cambio codifica al file mettendo Western ISO-8859-15 si inverte il risultato!
Come posso fare per far accettare una stringa utf8 alle librerie QT?
Ho un programma realizzato in C++, che utilizza le librerie QT4. I files .h e .cpp sono salvati con codifica UTF-8.
Quando esegui i file binario ocmpilato, i messaggi nella GUI visualizzano in modo sbagliato le lettere accentate:
Per spiegarmi meglio faccio vedere un pezzo di codice:
Ad esempio in questa funzione membro della classe frmMain (l'unica finestra che il programma usa)
Codice: Seleziona tutto
void frmMain::btnChiudi_click()
{
/* Quando clicco sul pulsante btnChiudi allora Chiudo la finestra. */
QMessageBox::information(this, "Arrivederci!", "Questo programma è stato scritto da Francesco!", QMessageBox::Ok , QMessageBox::Ok);
if (DEBUG) cout << "Questo programma è stato scritto da Francesco!" << endl;
close(); //Chiudo la finestra!
}
Codice: Seleziona tutto
QMessageBox::information(this, "Arrivederci!", "Questo programma è stato scritto da Francesco!", QMessageBox::Ok , QMessageBox::Ok); 
E si vede chiaramente che le lettere accentate non vengono visualizzate correttamente.
Mentre cout mostra:

E qui le lettere accentate si vedono bene
Non capisco, il problema sembra dipenda dalle librerie QT4 che mal sopportano l'UTF8, se cambio codifica al file mettendo Western ISO-8859-15 si inverte il risultato!
Come posso fare per far accettare una stringa utf8 alle librerie QT?