Qt char* zu QString

Ich versuche zu konvertieren char* zu QString. Es sollte eine triviale Aufgabe, aber das problem ist, ich bin mit der folgenden Eingabe:

item    char [512] "N"  char [512]
    [0] 78 'N'  char
    [1] 0 '\0'  char
    [2] 73 'I'  char
    [3] 0 '\0'  char
    [4] 70 'F'  char
    [5] 0 '\0'  char
    [6] 84 'T'  char
    [7] 0 '\0'  char
    [8] 89 'Y'  char
    [9] 0 '\0'  char
    [10]    0 '\0'  char

Beachten Sie die null-Zeichen nach jedem Zeichen '\0'. Einfach versuchen, Sie zu konvertieren nur die Erträge der string "N", wo, wie es sollte-Ergebnis in string "GEIL".

Ich bin nicht sicher, ob es unicode oder Ansi string (in der Tat, ich weiß nicht viel über es). Kann bitte jemand klären, was läuft hier falsch oder was übersehe ich?

  • Scheint unicode. Versuchen wchar_t.
  • Es scheint, Unicode (UTF-16 um genau zu sein). Aber das wäre eine andere abschliessenden '\0' byte. Wenn das fehlt hast du ein problem.
  • Casting zu QChar* könnte gut funktionieren würde, wäre es besser, die Daten in der richtigen Art in Erster Linie obwohl. Ich glaube, Sie brauchen, um zurück zu gehen ein Schritt und zeigen Sie uns, Woher Sie die Daten in den ersten Platz. Abgesehen von allem anderen würden Sie lernen, ein wenig mehr über ANSI und Unicode.
  • Scratch, dass, QChar* hat bei mir nicht funktioniert. QString::fromUtf16((ushort*)buffer) jedoch Tat, aber Sie brauchen noch eine 0 char im buffer-Ende Formular eine gültige null-Terminierung
Schreibe einen Kommentar