![]() |
Zeichencodierung mit Indy
Hallo Leute,
ich habe echt Probleme mit den verschiedenen charset Codierungen. Ich habe sowohl versucht UTF-8 codierte Zeichen mit Utf8ToAnsi zu decodieren also andere Zeichen mit Utility Library v.1.0.3. Irgendwie klappt alles nicht so richtig dh. gar nicht ;/ Beispielcode so angepasst, damit man sieht was ich da mache:
Delphi-Quellcode:
ist 8859_2 codiert.
var
text:string; begin text:=Iso8859_2ToUTF16str(IdHTTP1.get('http://80.110.132.33/cgh/skupno/news.cfm?id=12793&jez=2')); memo1.Text:=text; end; Umlaute kommen dennoch nicht decodiert
Delphi-Quellcode:
ist UTF-8 codiert.
var
text:string; begin text:=Utf8ToAnsi(IdHTTP1.get('http://www.diepresse.com/artikel.aspx?id=339914')); memo1.Text:=text; end; Umlaute kommen dennoch nicht decodiert Hat jemand eine Ahnung, was ich falsch mache, irgendwie gehts mir nämlich mittlerweile so: :wall: Danke [edit=r_kerber]Delphi-Tags gesetzt! Mfg, r_kerber[/edit] |
Re: Zeichencodierung mit Indy
Moin,
Unicodes sind eher Sakuras Spezialgebiet... aber ich versuche auch einfach mal mein Glück: Ich bin nicht sicher, aber wie mir scheint, liefert die Funktion Iso8859_2ToUTF16str einen WideString zurück... und das funktioniert scheinbar irgendwie nicht. (Interessante Frage: Ist das Memo (und TStringList, TStrings...) WideString-fähig?) Aber so konnte ich das Beispiel von Dir sauber laden:
Delphi-Quellcode:
Die Funktion Utf8ToAnsi ist ne Delphi Funktion, damit bräuchtest du dann auch die Extra Unit UnicodeUtils nicht mehr.
Memo1.Text := Utf8ToAnsi(IdHTTP1.get('http://80.110.132.33/cgh/skupno/news.cfm?id=12793&jez=2'));
Gruß Wormid |
Re: Zeichencodierung mit Indy
In HTML-Dateien wird UTF-8 ja z.B. in der Form =E2=B4 in Ansi dargestellt, die Funktion Utf8ToAnsi arbeitet jedoch mit binären Werten, also in dem Fall Chr($E2)+Chr($B4), deshalb muss die Umwandlung vor dem übergeben an Utf8ToAnsi dementsprechend erfolgen.
|
Re: Zeichencodierung mit Indy
:wiejetzt:
"Meine" Version da oben war die einzigste, die die Umlaute in dem Memo korrekt dargestellt hat. Aber wie gesagt, sicher bin ich mir bei Unicode & co. sowieso nicht. Sauber ist die Lösung sowieso insgesamt nicht, weil dabei völlig ignoriert wird, was in dem Dokument für ein Zeichensatz angegeben ist... |
Re: Zeichencodierung mit Indy
Zitat:
aber wenn du genau schaust, werden die Umlaute nicht umgewandelt in dem Beispiel. Zitat:
|
Re: Zeichencodierung mit Indy
Bei mir schon... :gruebel:
Code:
<td valign="top">
Radio Stimme, das Radio der Initiative Minderheiten auf der Radio Orange, bringt am Dienstag eine Reportage über die hochkarätige Posiumsdiskussion der Österreichischen Liga für Menschenrechte "Wozu noch Minderheiten?". |
Re: Zeichencodierung mit Indy
Zitat:
wo ist nun der unterschied eventuell im memo1.font.charset ? |
Re: Zeichencodierung mit Indy
Memo1.Font.Charset ist gleich DEFAULT_CHARSET, die Schrift ist "MS Sans Serif", Size 8...
:hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz