2009-07-03 7 views
0

Hier ist link, wo ich einen Code für den Abruf von Webseiten-Inhalten bekam. Aber ich habe ein Problem: Ich habe Text in der falschen Kodierung. Konnte ich es korrigieren? Vielen Dank.C++ und Qt - Codierung von Seiteninhalt

EDIT: Ich versuche, Daten von Seite zu bekommen:

http://ru.wiktionary.org/wiki/example

Und bekam: alt text http://img44.imageshack.us/img44/6141/kfastwikimainwindow.png

EDIT2: ich nur alle Daten an die html- speichern Datei und zeigen Sie es in QWebView.

+0

Weitere Details; Welche Codierung erwarten Sie und was bekommen Sie? – Gerald

Antwort

2

Ich denke, Sie bekommen es mit der richtigen Codierung, es wird nur nicht mit der richtigen Codierung angezeigt. Ich habe einen Schnelltest gemacht und das sieht ungefähr so ​​aus, wenn ich es mit dem Visual Studio HTML Visualizer anzeige, aber wenn ich die Daten in einer Datei abspeichern und mit einem Browser öffne, ist sie korrekt codiert.

+0

Browser verwendet automatische Codierung. Es gibt also eine normale Sichtweise. – Ockonal

+1

Vielleicht verstehe ich deine Frage nicht. QNetworkAccessManager gibt die Daten als unformatiertes Bytearray zurück, es macht nichts mit der Codierung. Die Daten werden mit UTF-8-Codierung zurückgegeben, was Sie damit tun, liegt bei Ihnen. – Gerald

+0

Vielleicht ... Es gibt einige Probleme beim Einfügen von Daten in den TextEdit. Ich sollte testen ... Danke für die Antwort. – Ockonal

0

Von dem, was ich verstehe, erhalten Sie die Daten als QByteArray, die an sich keine Kodierung hat (oder wissen). Je nachdem, wie Sie die Daten zur Anzeige übergeben, wird sie möglicherweise als local8bit behandelt, die von Ihnen verlinkte Website ist jedoch utf-8. In diesem Fall können Sie es durch eine QTextCodec übergeben, um die richtige Codierung zu erkennen und zu verwenden (QTextCodec::codecForHtml() könnte hier interessant sein), oder, wenn Sie sicher sind, dass Sie Websites immer als utf-8 erhalten, verwenden Sie QString::fromUtf8().