QByteArray à QString

Je vais avoir des problèmes avec QByteArray et QString.

Je suis en train de lire un fichier et le stocke ses informations dans un QByteArray. Le fichier est au format unicode, donc il contient quelque chose comme: t\0 e\0 s\0 t\0 \0 \0

Je suis en train de comparer cette valeur à ma valeur spécifiée, mais elle ne réussit pas, parce que dans le débogueur, j'voir, c'est pas une chaîne unicode.

Le code va tout vous expliquer:

QByteArray Data; //contains unicode string "t
QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0"
QString myValue = "test"; //value to compare.
if(Data.contains(myValue))
//do some stuff.
else
//do other stuff.
e
QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0"
QString myValue = "test"; //value to compare.
if(Data.contains(myValue))
//do some stuff.
else
//do other stuff.
s
QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0"
QString myValue = "test"; //value to compare.
if(Data.contains(myValue))
//do some stuff.
else
//do other stuff.
t
QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0"
QString myValue = "test"; //value to compare.
if(Data.contains(myValue))
//do some stuff.
else
//do other stuff.
QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0"
QString myValue = "test"; //value to compare.
if(Data.contains(myValue))
//do some stuff.
else
//do other stuff.
QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0"
QString myValue = "test"; //value to compare.
if(Data.contains(myValue))
//do some stuff.
else
//do other stuff.
"
QString myValue = "test"; //value to compare. if(Data.contains(myValue)) //do some stuff. else //do other stuff.

Dans le débogueur, il m'indique que la variable Data a la valeur "t\0 e\0 s\0 t\0 \0 \0" et myValue a la valeur "test". Comment puis-je résoudre ce problème?

  • Peut-être utile: qt-project.org/doc/qt-4.8/...
  • Veuillez noter que le traitement des chaînes changé depuis Qt 5.0. Des tableaux de caractères en interne sont interprétées comme étant codé en UTF-8. QString myValue = "äöü"; par exemple, doit être évitée à moins que si le fichier source elle-même n'est pas stocké en UTF-8. Jetez un oeil à wiki.qt.io/Strings_and_encodings_in_Qt pour plus d'informations.
InformationsquelleAutor Nika | 2013-01-02