Wie konvertieren von text in UTF-8 Delphi
Habe ich eine Funktion zurückgibt, die eine HTML-Seite aus dem Internet, aber die kyrillischen Symbole werden angezeigt, mit einige andere unbekannte Zeichen.
Wie kann ich konvertieren Sie den text und werden in der Lage, um zu sehen, die normale kyrillische Symbole?
Ich bin mit Delphi 2009 und im mit indy zum senden von HTTP-Anfrage und erhalten Sie wieder die Antwort vom server.
(ich glaube, ich habe indy9)
Dies ist, wie ich die HTML-Seite
http := TIDHttp.Create(nil);
http.HandleRedirects := true;
http.ReadTimeout := 5000;
http.Request.ContentType:='multipart/form-data';
param:=TIdMultiPartFormDataStream.Create;
param.AddFormField('subcat_id','501');
param.AddFormField('reg_id','1');
text:=http.Post('example.com',param);
Ich weiß nicht, ob indy hat alle Funktionen, die ruft die Seite mit beliebigen unicode.
- könnte ein Unicode-problem, welche version von Delphi benutzt du, könnte auch Sie nach dem code oder ein Beispiel code, damit wir sehen können?
- Sie brauchen, um zu geben mehr details. Wie erhalten Sie die Daten? Wie ist es codiert?
- alle HTTP-Nachrichten sind octet-streams in den ersten Platz. Die weitere Behandlung hängt von dessen Inhalt-Typ und seine charset-parameter.
- An den OP: Welche Delphi-version, welche Komponente oder Bibliothek verwenden Sie für den HTTP-download, wie Sie das anzeigen der empfangenen text, werden Sie sehen, Fragezeichen, Quadrate oder Unsinn-Zeichen?
- Deine Frage ist schwer zu beantworten, bis Sie angeben, eine delphi-version.
- Ja.. sorry, habe ich nicht viel details. ich bearbeitete meinen Kommentar oben.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie nicht genug Informationen, aber ich werde versuchen zu suggerieren: Wenn möglich, laden Sie die Daten in einen Stream und erstellen Sie dann eine StringList und laden Sie es wie folgt:
Kommentar, wenn es ein problem gibt.
Ihre Frage-Titel scheint zu sein, out-of-sync mit der Frage Körper. Angenommen, Sie wollen decodieren UTF-8-codierte HTML-Seite, dein Freund ist die Funktion
UTF8Decode
. Die entgegengesetzte operation erfolgt durchUTF8Encode
. Diese Funktionen waren verfügbar, so früh wie Delphi 7 (korrigieren Sie mich, wenn D6 gilt auch). Check out "Siehe Auch" - Abschnitt des Artikels, es gibt Puffer Umgang mit entry-Punkte für mehr Komfort.Indy 9 bietet keine Unterstützung für Delphi 2009. Stellen Sie sicher, dass Sie die neueste Indy 10 Version statt. In Indy 10 version
TIdHTTP.Post()
(undTIdHTTP.Get()
), gibt eineString
wird automatisch decodieren die Daten in Unicode verwenden, was charset angegeben ist, die von dem server in der HTTP -Content-Type
- header oder in einer<meta>
- tag innerhalb des HTML-Codes selbst.