J'ai un std::string content
qui, je le sais, contient des données UTF-8. Je veux le convertir en un QString
. Comment est-ce que je fais cela, en évitant la conversion from-ASCII dans Qt?Convertir std :: string en QString
51
A
Répondre
66
Il y a une fonction appelée QString
fromUtf8
qui prend un const char*
:
QString str = QString::fromUtf8(content.c_str());
47
QString::fromStdString(content)
fonctionne bien aussi. Il devrait donner exactement le même résultat que le résultat fromUtf8(content.data(), int(content.size()))
.
+2
Seulement dans Qt5. Dans Qt4, il utilise QString :: fromAscii. –
4
Habituellement, la meilleure méthode pour effectuer la conversion est l'utilisation de la méthode fromUtf8, mais le problème est lorsque vous avez des chaînes dépendantes des paramètres régionaux. Dans ces cas, il est préférable d'utiliser fromLocal8Bit. Exemple:
std::string str = "ëxample";
QString qs = QString::fromLocal8Bit(str.c_str());
Ah, l'a négligé. Merci! –
Plus efficace: 'QString :: fromUtf8 (content.data(), content.size())' –