2012-05-10 2 views
1

Actuellement, j'ai un datum sauvegardé, au fichier ini, il est utilisé une classe QSetting. Je me demande comment je peux le convertir en std :: string sans utiliser qt. Est-ce que quelqu'un sait comment déterminer le code et comment décodec?Convertir la valeur QSetting en StdString

Mes données:

dataID="\x1\0\0\0\xd0\x8c\x9d\xdf\x1\x15\xd1\x11\x8cz\0\xc0O\xc2\x97\xeb\x1\0\0\0Z\xa3\xa3\xc9\x18\xb5>M\xa9=)\xb4\xda\xfb{\xfe\x4\0\0\0\x2\0\0\0\0\0\x3\x66\0\0\xc0\0\0\0\x10\0\0\0|\x16>\x17\x96\xda\xc4-O\xe9\x1f!\\\aAW\0\0\0\0\x4\x80\0\0\xa0\0\0\0\x10\0\0\0\x45\xf4K\x9e\xc2k$\f\xd2\xcbK\b\xf4\xd3\xdf}(\0\0\0\xb2\xb2\xf1\x13[sy\r\xeb\xa7\x96l\x8d\xd7\xa4\xccJ\xf6M\xc1\xf3U3W\xe4\xf7\xa6\x1a\x86s`v\xc2\x8d\x99\xdf!8\xd0G\x14\0\0\0\x35\x93\xeb\xcb\xa9\x16\xadXI\xe6\x46wY\x7f\x32\xb8\xd9\xec\xfb*" 

Je voudrais faire

std::string data = convert(dataID); 

où convert est un pur C++ fonction

+0

Vous souhaitez prendre des données sérialisées par Qt et les désérialiser sans Qt? Pourquoi le sérialiser avec Qt en premier lieu? – ildjarn

+0

@ildjarn Probablement une application non-Qt doit avoir accès à quelque chose sauvegardé par l'application Qt, et probablement sans pouvoir changer cette autre application. Agus - vous avez accès au fichier source de QSettings, vous pouvez donc toujours vérifier comment il est décodé en interne. – tmpearce

Répondre

2

Est-ce que quelqu'un sait comment déterminer le code et comment decodec ?

Oui, vous pouvez le faire. Read this document. Gardez à l'esprit que QT stocke les données de chaîne dans le flux de données dans le codage UTF16, et std :: string stocke les chaînes 8 bits. Vous aurez donc besoin soit de routines de conversion d'encodage (UTF16-> 8bit), soit de simplement supprimer tous les caractères qui ne sont pas en ASCII.

Questions connexes