2012-04-03 4 views
1

über Server-API bekommen, ich bin Kontaktinformationen immer mit Mitglied der Struktur:Wie ich die UTF-8-Daten in einen QString

char display [USERNAME_MAX_SIZE];

Einer dieser Namen ist ein europäischer Namen mit Sonderzeichen: „Per Spant“

die Struktur der display sich wie folgt:

enter image description here

Wenn ich importieren ‚display‘ in ein QString über die "fromUtf8" -Funktion, bekomme ich die folgende QString:

Wie bekomme ich die richtige Zeichenfolge in meine QString ohne die Konvertierung der Sonderzeichen in zwei komische Charaktere?

+0

Sind Sie sicher, dass die Konvertierung falsch ist? Das sieht UTF-8 ähnlich aus wie Latin1. – Mat

+0

Nun ... von UTF8 ist die Antwort. Für mich geht das. Wie wäre es mit Code? – ypnos

+0

Gentlemen, mein Schlechter- Ich war "fromUft8" die falsche Saite! – JasonGenX

Antwort

2

FWIW, das funktioniert und funktioniert nicht mit Qt 4.7.4.

#include <iostream> 
#include <string> 

#include <QDebug> 
#include <QString> 

int main() 
{ 
    char name[7] = "Sp__nt"; 
    name[2]=-61; 
    name[3]=-91; 

    std::cout << name << std::endl;       // works 

    qDebug() << QString::fromUtf8(name);     // does not work 
    qDebug() << QString::fromAscii(name);     // works 
    qDebug() << QString::fromLatin1(name);     // works 
    qDebug() << QString::fromStdString(name);    // works 

    return 0; 
}