Bonjour, j'exécute une commande (g++) avec QProcess, et j'ai besoin d'afficher sa sortie standard. Je récupère donc ça avec readAllStandardOutput (en fait readAllStandardError mais c'est le même principe). Cette fonction renvoie un QByteArray, et lorsque je l'affiche ou j'essaye de le convertir en QString j'ai des caractères foireux, erreur d'encodage donc.
J'ai essayé différentes choses, avec des affichages plus ou moins horribles ^^ mais jamais un seul de bon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 QTextCodec* codec = QTextCodec::codecForLocale(); QString output = codec->fromUnicode(process.readAllStandardError());
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 QTextCodec* codec = QTextCodec::codecForName("UTF-8"); QString output = codec->fromUnicode(process.readAllStandardError());Je précise que je suis sous ubuntu et que le caractère qui fait tout foirer est : `
Code : Sélectionner tout - Visualiser dans une fenêtre à part QString output = QString::fromLatin1(process.readAllStandardError().data());
Mon OS est censé être en UTF-8 selon la commande "env", mais je ne suis pas un expert de ce genre de subtilité. Si quelqu'un a une idée de comment régler ça, je lui vouerais un culte pendant une bonne poignée de secondes
Partager