Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen (https://www.delphipraxis.net/170818-delphi-xe-indy-httpclient-auf-utf-8-uebertragung-einstellen.html)

Tomski 4. Okt 2012 12:43

Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen
 
Hallo Leute,

habe bei der Umstellung meiner Programme von Delphi2007 auf XE noch Probleme mit dem Indy httpclient. Mit Delphi2007 funktionierts einwandfrei nur mit XE klappts nicht. Hier die Problembeschreibung...

Ich übertrage ein XML-File UTF-8 per httpclient als post an ein Script auf einem Server auf dem ich selbst keinen Zugriff habe um zu prüfen was dort ankommt. Das Problem ist das File wird mit Fehlermeldung immer dann abgewiesen wenn sich Umlaute im File befinden. Folgende Erfahrung habe ich bisher gemacht...

1. XML-File (StringList UTF-8 codiert) per Post mit Delphi2007 mit und ohne Umlaute... Kein Problem...
2. XML-File (StringList UTF-8 codiert) per Post mit DelphiXE ohne Umlaute... Kein Problem...
3. XML-File (StringList UTF-8 codiert) per Post mit DelphiXE mit Umlauten... Fehlermeldung > Zeichen (Umlaut) nicht erkannt...

Ich denke der httpclient überträgt in XE mit einer anderen Codierung als UTF-8. Meine Frage wie kann ich am httpclient die Codierung so einstellen das per UTF-8 übertagen wird. Habe mir die httpclientbeschreibungen von geskill angeschaut, habe aber nichts gefunden das mir weiterhilft. Am sinnvollsten schien mir von gskill

ResponseStr := Post('http://www.delphipraxis.net/login.php?do=login', Params, Enc);

Allerdings kann ich den Parameter Enc nicht angeben, da er bei meinen Indyversionen nicht im Post vorgesehen ist. Habe auch nachgeschaut bei Indy nach neueren Versionen, aber die Indyversionen die zum Download stehen sind ältere Versionen die ich bei XE dabei hatte.

Wäre toll wenn mir jemand helfen könnte, dass Problem muß sich doch lösen lassen...

Gruß Thomas


Hab noch was vergessen... Wenn ich das mit XE erzeugte XML-File mit 2007 übertrage gehts einwandfrei. Also scheint die Wahrscheinlichkeit groß das der httpclient in XE nicht in UTF-8 überträgt, dort evtl. eine anderes Default eingestellt ist.

Bernhard Geyer 4. Okt 2012 12:46

AW: Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen
 
Aktuelle Indy-Version installiert. Wenn ich mich recht erinnere gabs in dem Bereich UTF8/Unicode bei der mit Delphi gelieferten Version noch einige Bugs.

Download für aktuelle Version:
http://blog.digivendo.com/2009/09/indy-svn-access/
http://indy.fulgan.com/ZIP/

mjustin 4. Okt 2012 12:47

AW: Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen
 
Zitat:

Zitat von Tomski (Beitrag 1185665)
Allerdings kann ich den Parameter Enc nicht angeben, da er bei meinen Indyversionen nicht im Post vorgesehen ist. Habe auch nachgeschaut bei Indy nach neueren Versionen, aber die Indyversionen die zum Download stehen sind ältere Versionen die ich bei XE dabei hatte.

Aktuell ist 10.5.9 (nicht mehr 10.5.8), die ab XE3 enthalten ist, und die man auch downloaden kann, z.B. bei http://indy.fulgan.com/ZIP

Tomski 7. Okt 2012 14:57

AW: Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen
 
Ich habe jetzt versucht die Indy 10.5.9. zu installieren, die läuft aber unter XE nicht. Leider bekomme ich jetzt auch die 'alte' nicht mehr zum laufen... Kann man die 10.5.8. noch irgendwo abladen? Bei Google komme ich nur wieder bei Indy raus und dort finde ich nur die neueste Version.

himitsu 7. Okt 2012 16:01

AW: Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen
 
Eine Reparaturinstallation des Delphi?

Tomski 7. Okt 2012 16:14

AW: Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen
 
guter Tip könnte ich gleich mal versuchen.

Tomski 7. Okt 2012 17:02

AW: Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen
 
@Himitsu:
Danke Himitsu hat geklappt ohne das ich alle Komponenten neu installieren musste, manchmal steht man auf dem Schlauch was die einfachen Lösungen betrifft.

Also bei mir ist die Version 10.5.7. installiert wie komme ich jetzt noch an die 10.5.8., leider lässt sich die 10.5.9. bei mir unter XE nicht installieren. Evtl. kann ich die 10.5.8. installieren. Danke schon mal im voraus für eure Mühen.

Tomski 29. Okt 2012 10:48

AW: Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen
 
So hab's jetzt endlich gefunden was getan werden muss, geht auch mit Indy 10.5.7. Der Postbefehl muss sinngemäß so aussehen...

HTTPClient.Post(fScriptUrl,ParaStringList,SysUtils .TEncoding.UTF8);

Hier gibts dann auch Unicode, UTF7, ASCII etc. Ich hoffe es kann noch jemand gebrauchen...

Beste Grüße an Alle
Tomski


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