2010-12-02 55 views

Répondre

66

Il y a une fonction appelée QStringfromUtf8 qui prend un const char*:

QString str = QString::fromUtf8(content.c_str()); 
+0

Ah, l'a négligé. Merci! –

+14

Plus efficace: 'QString :: fromUtf8 (content.data(), content.size())' –

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());