AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Zeichencodierung mit Indy
Thema durchsuchen
Ansicht
Themen-Optionen

Zeichencodierung mit Indy

Ein Thema von whook · begonnen am 18. Nov 2003 · letzter Beitrag vom 18. Nov 2003
Antwort Antwort
whook

Registriert seit: 17. Nov 2003
5 Beiträge
 
#1

Zeichencodierung mit Indy

  Alt 18. Nov 2003, 00:20
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:
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;
ist 8859_2 codiert.
Umlaute kommen dennoch nicht decodiert






Delphi-Quellcode:
var
text:string;
begin
text:=Utf8ToAnsi(IdHTTP1.get('http://www.diepresse.com/artikel.aspx?id=339914'));
memo1.Text:=text;
end;
ist UTF-8 codiert.
Umlaute kommen dennoch nicht decodiert


Hat jemand eine Ahnung, was ich falsch mache, irgendwie gehts mir nämlich mittlerweile so:

Danke

[edit=r_kerber]Delphi-Tags gesetzt! Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Zeichencodierung mit Indy

  Alt 18. Nov 2003, 01:08
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:
  Memo1.Text := Utf8ToAnsi(IdHTTP1.get('http://80.110.132.33/cgh/skupno/news.cfm?id=12793&jez=2')); Die Funktion Utf8ToAnsi ist ne Delphi Funktion, damit bräuchtest du dann auch die Extra Unit UnicodeUtils nicht mehr.

Gruß

Wormid
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#3

Re: Zeichencodierung mit Indy

  Alt 18. Nov 2003, 01:17
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.
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Zeichencodierung mit Indy

  Alt 18. Nov 2003, 01:33


"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...
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
whook

Registriert seit: 17. Nov 2003
5 Beiträge
 
#5

Re: Zeichencodierung mit Indy

  Alt 18. Nov 2003, 13:12
Zitat von Wormid:
Aber so konnte ich das Beispiel von Dir sauber laden:
  Memo1.Text := Utf8ToAnsi(IdHTTP1.get('http://80.110.132.33/cgh/skupno/news.cfm?id=12793&jez=2'));
Hallo zunächst mal Danke für die Antwort,
aber wenn du genau schaust, werden die Umlaute nicht umgewandelt in dem Beispiel.

Zitat von Browserergebnis:
Radio Stimme, das Radio der Initiative Minderheiten auf der Radio Orange, bringt am Dienstag eine Reportage C<ber die hochkarC$tige Posiumsdiskussion der Csterreichischen Liga fC<r Menschenrechte "Wozu noch Minderheiten?".
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Zeichencodierung mit Indy

  Alt 18. Nov 2003, 13:37
Bei mir schon...

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?".
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
whook

Registriert seit: 17. Nov 2003
5 Beiträge
 
#7

Re: Zeichencodierung mit Indy

  Alt 18. Nov 2003, 13:39
Zitat von Wormid:
Bei mir schon...

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?".
hmm jetzt wirds aber spannend
wo ist nun der unterschied eventuell im memo1.font.charset ?
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Zeichencodierung mit Indy

  Alt 18. Nov 2003, 14:37
Memo1.Font.Charset ist gleich DEFAULT_CHARSET, die Schrift ist "MS Sans Serif", Size 8...

Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz