Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   IDHTTP.get umlaute Problem (https://www.delphipraxis.net/153251-idhttp-get-umlaute-problem.html)

youuu 26. Jul 2010 19:22

IDHTTP.get umlaute Problem
 
Hi,

ich hol mir den Source Code eine Webseite so:
Delphi-Quellcode:
Richedit.Lines.Text := IdHTTP1.Get('http://www.test.de');
Problem ist das die Umlaut so dargestellt werden: Viereck mit einem Fragezeichen darin

Wenn ich UTF8Encode oder Decode verwende steht aber dennoch ein Fragezeichen da.

Jemand eine Idee?

rollstuhlfahrer 26. Jul 2010 20:22

AW: IDHTTP.get umlaute Problem
 
Umlaute werden in der HTML-Syntax als ü dargestellt. Kann dein RichEdit das parsen oder hast du gleich eine invalide Webseite genommen?

Bernhard

Andreas L. 26. Jul 2010 21:12

AW: IDHTTP.get umlaute Problem
 
Zitat:

Zitat von rollstuhlfahrer (Beitrag 1037743)
Umlaute werden in der HTML-Syntax als ü dargestellt.

Wenn die Webseite als UTF8 gespeichert ist, ist das i. d. R. eben nicht der Fall ;-)

youuu 27. Jul 2010 09:16

AW: IDHTTP.get umlaute Problem
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Ist die Codierung der Homepage.
Es kommen auch keine normalen Umlaute "Verstümmelungen", sondern ein Viereck mit ?.

Bernhard Geyer 27. Jul 2010 09:53

AW: IDHTTP.get umlaute Problem
 
Hast du auch die letzte Verfügbare Indy-Version im einsatz?

youuu 27. Jul 2010 10:07

AW: IDHTTP.get umlaute Problem
 
Version 10.5.5

youuu 28. Jul 2010 10:46

AW: IDHTTP.get umlaute Problem
 
� Ist im übrigen das Zeichen, welches mir angezeit wird, bei jedem Umlaut.

fkerber 28. Jul 2010 10:49

AW: IDHTTP.get umlaute Problem
 
Hi!

Wie stehen die Umlaute denn im Original-Quelltext drin?


Liebe Grüße,
Frederic

wicht 28. Jul 2010 10:51

AW: IDHTTP.get umlaute Problem
 
Und wie sieht der HTTP-Header der Antwort aus? Da drin kann auch ein Encoding angegeben sein.

youuu 28. Jul 2010 11:04

AW: IDHTTP.get umlaute Problem
 
Zitat:

Zitat von youuu (Beitrag 1038069)
� Ist im übrigen das Zeichen, welches mir angezeit wird, bei jedem Umlaut.

Sehen ganz normal aus: ä ö ü

Zitat:

Und wie sieht der HTTP-Header der Antwort aus? Da drin kann auch ein Encoding angegeben sein.
Wie kann ich das sehen?

fkerber 28. Jul 2010 11:11

AW: IDHTTP.get umlaute Problem
 
Hi!

Also steht im Quelltext wirklich der Umlaut drin?
Dann passen nämlich Codierung und Inhalt nicht zusammen.


Grüße,
Frederic

youuu 28. Jul 2010 11:18

AW: IDHTTP.get umlaute Problem
 
Code:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Code:
<b>Bergbauernhof Möslerlehen***</b>

fkerber 28. Jul 2010 11:24

AW: IDHTTP.get umlaute Problem
 
Hi!

Hmm, das ist komisch.
Ich hätte schwören können, dass es bei 8859-1 nicht geht, Umlaute unkodiert zu haben.

Allerdings lese ich auf Selfhtml z.B. gerade, dass es direkt gehen sollte?!


Liebe Grüße,
Frederic

youuu 28. Jul 2010 11:33

AW: IDHTTP.get umlaute Problem
 
Ich hab nun auch noch einmal nach geschaut, auf einer anderen Seite selbe Kodierung klappt der Import per Indy ohne Probleme...

Nun frag ich mich was nicht stimmt, auf der anderen Seite?

fkerber 28. Jul 2010 11:38

AW: IDHTTP.get umlaute Problem
 
Hi!

Sind denn dort die Umlaute kodiert?


Liebe Grüße,
Frederic

Andreas L. 28. Jul 2010 11:41

AW: IDHTTP.get umlaute Problem
 
Zitat:

Zitat von youuu (Beitrag 1038086)
Ich hab nun auch noch einmal nach geschaut, auf einer anderen Seite selbe Kodierung klappt der Import per Indy ohne Probleme...

Nun frag ich mich was nicht stimmt, auf der anderen Seite?

Vielleicht ist nur die Kodierung als 8859-1 angegeben, die Datei aber als UTF8 gespeichert?

Du kannst außerdem mal versuchen die Seite mit einer anderen HTTP-Komponente zu laden (ICS, iPro, ...).

Hast du schon versucht .Get auf eine Variable und nicht gleich auf das RichEdit anzuwenden?

Delphi-Quellcode:
Richedit.Lines.Text := IdHTTP1.Get('http://www.test.de');

...

var
  s: String; //auch mal mit WideString und so weiter versuchen
begin
  s := IdHttp1.Get('...');
  ShowMessage(s);
end;
Interessant wäre auch noch zu wissen ob du bei IdHTTP eine Eigenschaft (ausversehen) verstellt hast. Wenn du die Komponente komplett neu auf die Form ziehst, gehts dann?

Zitat:

Zitat von youuu (Beitrag 1038077)

Zitat:

Und wie sieht der HTTP-Header der Antwort aus? Da drin kann auch ein Encoding angegeben sein.
Wie kann ich das sehen?

Z. B. mit Firebug.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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