Einzelnen Beitrag anzeigen

Tomski

Registriert seit: 17. Jun 2010
19 Beiträge
 
Delphi 2 Desktop
 
#1

Delphi XE Indy httpclient auf UTF-8 Übertragung einstellen

  Alt 4. Okt 2012, 12:43
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.

Geändert von Tomski ( 4. Okt 2012 um 12:51 Uhr)
  Mit Zitat antworten Zitat