Umlaute umwandeln

Verschiedenes zu Qt
Antworten
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Umlaute umwandeln

Beitrag von nexus »

Ich hab folgendes Problem und zwar ich les Text von Webseiten aus, wenn ich diesen jedoch ausgeben möchte werden die Umlaute nicht richtig dargestellt. Die Methoden toUtf8, toLatin1, etc. brachten keine Änderung. Wie kann ich es erreichen das diese Korrekt dargestellt werden?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Etwas mehr Infos und Codestücke wären nicht schlecht.
Wo ausgeben? Wie versuchst Du es auszugeben,...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

Ich lese eine Webseite ein, etwa so

Code: Alles auswählen

hlp = parseHtml(data, "href=\"(plot/)(.*)\"", "get_one", pos);
			buffer->open(QBuffer::WriteOnly);
			http->setHost(server);
			http->get("/" + hlp.at(0) + hlp.at(1), buffer);
filteren dann noch mit weiteren regulären ausdrücken den text.

Es ist egal wie ich dann den Text aus gebe (in einem label, textedit, konsole, etc.) die umlaute sehen dann bspw. so aus: zerstören
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

was ist parseHTML (bzw. was gibt er zurück), welcher Datentyp ist hlp.
Wenn man einen QString in ein QTextEdit schreibt muss man nichts wandeln.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

parseHtml durchsucht einen buffer anhand des übergebenen regulären ausdrucks und gibt die resultate als QStringList zurück. Wenn ich diese jedoch mit der methode setText in ein QTextEdit schreibe sehen die Umlaute wie im vorherigen Post zu sehen aus
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Da parseHTML einen QString zurückliefert, Du aber in QBuffer ein QByteArray hast wird wohl da eine Umwandlung fehlen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

Und was für eine?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Von dem Encoding die die heruntergeladene Website hat in QString. Woher sol ich wissen welches Encoding die Website hat?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

QByteArray bietet jedoch keine Methode um die zeichencodierung zu ändern, desweiteren verstehe ich auch nicht washalb dies im QString nicht mehr möglich ist.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

QByteArray bietet keine Methode da QByteArray das nicht kann - in QByteArray stehen einfach nur irgendwelche Zeichen. Was für eine Kodierung die haben ist dem QByteArray total egal. Die QString-Doku wird dir aber sicherlich weiterhelfen... (QString::fromXXX())
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

Bleibt nur noch die Frage in welches Format ich umwandeln muss, damit die Umlaute korrekt dargestellt werden, Utf8?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

nexus hat geschrieben:Bleibt nur noch die Frage in welches Format ich umwandeln muss, damit die Umlaute korrekt dargestellt werden, Utf8?
Was fragst Du mich das ständig? Woher sollen wir wissen welches Encoding Deine Website welche Du herunterlädst hat??
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
nexus
Beiträge: 75
Registriert: 14. Oktober 2006 19:24

Beitrag von nexus »

Ich will nicht Wissen welches encoding die Seite hat sondern in welches ich umwandeln muss, damit die umlaute bspw. im QTextEdit korrekt dargestellt werden....
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

QString benutzt utf16, aber das kann Dir total egal sein. Du musst wissen welches Encoding die Website benutzt damit Du diese Daten dann in einen korrekten QString wandeln kannst!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
gerome69
Beiträge: 188
Registriert: 28. April 2006 22:50
Wohnort: Berlin
Kontaktdaten:

Beitrag von gerome69 »

nexus hat geschrieben:Ich will nicht Wissen welches encoding die Seite hat sondern in welches ich umwandeln muss, damit die umlaute bspw. im QTextEdit korrekt dargestellt werden....
QString ist voll Unicode-fähig. Du mußt also von der Codierung deiner Webseite umwandeln. Was steht denn im HTML für eine Codierung.
Link zu "deiner" Webseite würde weiterhelfen.

G.
Antworten