ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
278
278
EMPFEHLEN
-
14.09.11 08:57 #1
- Registriert seit
- Aug 2007
- Beiträge
- 329
Hi,
ich schreibe ein Programm in dem ich eine Webseite auslese. Das Programm ist auf Multi-Byte eingestellt, die Webseite ist in UTF8.
Wenn sich im Webseiten-Quellcode Umlaute befinden werden die zerstört.
Wie kann ich den UTF8-Quellcode in Multi-Byte umwandeln, damit die Umlaute richtig angezeigt werden (am Besten ohne eine externe Library)?
Gruß
-
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
26.09.11 09:04 #3
- Registriert seit
- Aug 2007
- Beiträge
- 329
Hi,
ja, es ist eine Windows-Anwendung (mit wxWidgets).
Ich hole mit InternetReadFile den Inhalt einer Webseite:
Code :1 2 3 4 5 6 7 8 9
std::string data; HINTERNET hOpen = InternetOpen("TestTool",INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL); HINTERNET hFile = InternetOpenUrl(hOpen,url.c_str(), NULL, NULL, INTERNET_FLAG_RELOAD, NULL); bool success = true; while ((success = InternetReadFile(hFile, Return, sizeof(Return), &bytesRead)) && bytesRead != 0) { data.append(_T(Return), bytesRead); }
In data steht dann korrekt der Inhalt der Webseite drin.
Danach lasse ich einen std::tr1::regex drüberlaufen um einen bestimmten Teil-String zu bekommen, der Umlaute enthält.
Das Ganze geb ich dann in einer wxComboBox aus. Dabei sind die Umlaute zerstört.
Gruß
-
26.09.11 10:42 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Eine HTML Seite aus dem Netz kann sehr unterschiedliche Kodierungen verwenden. Mit InternetReadFile liest du nur die puren Bytes.
Du müßtest erstmal feststellen um welche Kodierung es sich handelt.
Da bietet wxWidgets sicherlich auch Hilfsfunktionen an. Du kannst eine Seite auch z.B. mit wxURL::GetInputStream auslesen. Ist einfacher und nicht system-spezifisch.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
[MySQL] Frage zu "Set Names UTF8"
Von HerbertJ im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 03.01.11, 16:59 -
Richtige Syntax bei Operatorüberladung, wann sind "friend", "const", "&" nötig?
Von mrs_schokokeks im Forum C/C++Antworten: 4Letzter Beitrag: 25.08.10, 19:13 -
SQL und Meta auf UTF-8, trotzdem "SET NAMES UTF8" nötig?
Von ZodiacXP im Forum PHPAntworten: 2Letzter Beitrag: 27.07.09, 20:22 -
Gameserver - Query - "4 byte challenge number"
Von SwissError im Forum PHPAntworten: 1Letzter Beitrag: 20.06.05, 16:30 -
fopen($file,"w") setzt nicht mecht auf 0 byte zurück
Von Security im Forum PHPAntworten: 2Letzter Beitrag: 23.11.04, 21:43





Zitieren

Login






