AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy.get Umlaute = ?

Ein Thema von Youuuu · begonnen am 29. Apr 2017 · letzter Beitrag vom 29. Apr 2017
Antwort Antwort
Seite 2 von 2     12   
Youuuu

Registriert seit: 9. Okt 2016
60 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 18:39
Habe ein Post vorher nun ein Bild angehangen, welches die übermittelten Daten ausgibt, dort ist von utf-8 nichts zu sehen. hm
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#12

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 18:42
Ausgehend vom META-Tag bekommt man UTF-8.

Allerdings sind da die deutschen Umlaute auch ohne Umwandlung von UTF-8 nach Ansi enthalten.

Ferienwohnungen, Ferienhäuser, Zimmervermietung, Pension, Gästezimmer

Aber auch in dieser Form: Allgemeine Geschäftsbedingungen

Wenn man von einigen Syntaxfehlern im HTML absieht, sollte man eigentlich ohne Umwandlung von UTF-8 nach irgendwas auskommen.

Ist diese Umwandlung denn bei Delphi 10.1 überhaupt noch nötig?

Mit Delphi 7 und ohne Rücksichtnahme auf den Zeichensatz, bekomme ich eine (zeichensatzmäßig) fehlerfreie Textdatei. Der Zeichzensatz dürfte iso-8859-1 sein.

ö hat nichts mit UFT-8 zu tuen (siehe Self-HTML: Referenz:HTML/Zeichenreferenz)
  Mit Zitat antworten Zitat
Youuuu

Registriert seit: 9. Okt 2016
60 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 18:46
Wie hast du denn http.get aufgebaut, denn bei mir erhalte ich wie gesagt keinen anständigen Text
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#14

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 18:52
Accept = text/html, */*.

Sonst nichts.

Bitte speichere Dein Ergebnis, zippe es und häng das dann hier mal an, möchte da mal reinschauen.

Wenn möglich beide Versionen: source := http.Get(url); und source := UTF8ToAnsi(http.Get(url));
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#15

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 18:57
Habe gerade mal das angehängte Bild angeschaut:

Da steht, dass Charset iso-8859-1 geliefert wird.
Content-Type ist ebenfalls iso-8859-1.

Die Angabe im Meta-Tag dürfte demnach falsch sein.

Geändert von nahpets (29. Apr 2017 um 18:59 Uhr) Grund: Text ergänzt
  Mit Zitat antworten Zitat
Youuuu

Registriert seit: 9. Okt 2016
60 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 19:12
Delphi-Quellcode:
resp := TMemoryStream.Create;
      try
        with http do begin
          HandleRedirects := True;
          AllowCookies := False;
          RedirectMaximum := 10;
        end;
        http.Get( url, resp );
        resp.Position := 0;
        slSource := TStringList.Create;
        try
          slSource.LoadFromStream(resp);
          source := slSource.Text;
        finally
          FreeAndNil(slSource);
        end;
        Result := source;
      finally
        resp.Free;
      end;
Wenn ich es wie oben per Stream lade, funktioniert es, anders jedoch nicht.

Geändert von Youuuu (29. Apr 2017 um 19:24 Uhr)
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#17

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 19:21
Ich glaube hier könnten die "Delphi-Profis" helfen

- Uwe Raabe
bzw.
- Maverik
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 19:50
Liest du die Berlin Webseite nur oder bis du Besitzer und hast somit Einfluss darauf wie sie abgespeichert ist?

Wenn ich deine Seite mit Chrome runterlade und dann im Editor öffne und unter Codierung nachsehe dann lese ich ANSI und nicht UTF-8 (wie bei ca. 90% aller Webseiten dieser Welt).

Falls du Einfluss auf die Webseite hast, dann speichere eine "öäü Test-Webseite" mal mit Codierung UTF-8 ab und checke, ob's nun klappt.


[Nebenbei: Ich habe auch noch alte ANSI codiert abgespeicherte Webseiten mit Formularen drauf. Bis mind. D X6 konnte man die Werte der übermittelten Felder locker mit TWebRequest.Contentfields auslesen. Bei späteren Delphis crasht das CGI bei Zugriff auf die ContenFields; Abhilfe: Webseiten UTF-8 codiert speichern oder wenn man nicht alles von ANSI auf UTF-8 umstellen mag Request.RawContent...]
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#19

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 20:29
Zum Glück (oder eher leider) sind Browser sehr Fehlertolerant und versuchen massig Schrott auszumärzen.

Sonst würden viele Webseiten garnicht angezeigt werden und man sähe ständig nur Fehlermeldungen.
Tja, da hat man nun Probleme eine Webseite auszulesen.
Aber besser wäre es eh, wenn man eine offizielle Schnittstelle/API zu den gewünschten Daten verwenden würde, wenn der Seitenbetreiber sowas anbietet.

Die Delphi-PRAXiS kann man so z.B. problemlos per XML auslesen und muß die Informationen nicht mitten im HTML suchen.
$2B or not $2B
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Indy.get Umlaute = ?

  Alt 29. Apr 2017, 20:56
Ich hab's rasch auf einem meiner Webserver gecheckt.

Wie vermutet: Speichere deine Webseite statt mit Codierung ANSI mit UTF-8 ab, dann werden die Umlaute korrekt angezeigt, d.h.: Lade die Webseite in einen Editor [wenn du ein neueres Windows hast, geht's auch mit dem "normalen" Editor von Windows], wähle Codierung UTF8 und speichere die Seite wieder ab. Lade sie hoch - und staune .

Wenn du keinen Zugriff hast auf die Webseite dann müsstest du die heruntergeladene Seite umcodieren [Ich weiss, es gibt direktere Wege ]:
hs := TStringList.Create;
hs.LoadFromFile( webseite, TEncoding.ANSI );
hs.SaveToFile( webseite, TEncoding.UTF8 );
und dann klappt es auch.
Michael Gasser
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:26 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