2017-01-12 3 views
1

Mon objectif est de convertir une valeur hexadécimale contenue dans un QString à sa valeur ASCII.Convertir QString hexadécimal en valeur ASCII

J'ai:

QString hexaValue = receiveText.left(14); // receive texte is another QString 

Mon problème ici, est que j'ai ma valeur hexadécimale dans un Qstring et non dans un QByteArray, de sorte que toutes les solutions que je trouve ne fonctionnent pas, j'essaie d'appeler .data() ou fromHex(), mais cela ne fonctionne pas ici, parce que je suis obligé de QString et utilisé un pas QByteArray

Dois-je convertir mon QString à un QByteArray, est-il une solution simple?

Répondre

2

Vous pouvez simplement utiliser QString::toLatin1 pour convertir la chaîne hexagonale pour QByteArray et de le reconvertir en QString utiliser soit QString::fromLocal8Bit pour l'encodage local ou QString::fromUtf8 si votre chaîne encodée hexagonale sont en UTF8.

QString hexaValue = receiveText.left(14); // received text is another QString 
QString textValue = QString::fromLocal8Bit(QByteArray::fromHex(hexaValue.toLatin1()));