Hallo
DP,
ich habe schon etliche Posts zum Thema durchsucht, komme aber zu keiner Lösung.
Folgende Situation:
Auf einem Forum editiere ich per
Indy-Http.Post meine Postings. Dabei wird der alte Inhalt mit Get ausgelesen, aktualisiert und wieder gepostet.
Beim Posten wird wohl einmal zuviel nach UTF8 konvertiert, weshalb ein Ä beispielsweise zu Ä auf dem Forum wird.
Die per Get erhaltenen Inhalte sind noch richtig.
Mit Delphi 2007 hat das Ganze problemlos funktioniert und an der Serverseite hat sich nichts verändert.
Folgender Code wurde in der Delphi 2007er-Version verwendet.
Delphi-Quellcode:
Strings := TStringList.Create;
try
Strings.Add('send=send');
Strings.Add('sid=' + sSid);
sPostNr := '353453';
Strings.Add('postid=' + sPostNr);
Strings.Add('submit=Beitrag speichern');
sMessage := Memo3.Text;
Strings.Add('message=' + sMessage);
IdHTTP1.HandleRedirects := True;
try
Memo2.text := idHTTP1.Post('http://www.testsite.de//editpost.php', Strings);
except
showmessage('Fehler beim Posten');
end;
finally
Strings.Free;
end;
Die Seiten des Forums sind so codiert:
Code:
<!DOCTYPE
HTML PUBLIC "-//
W3C//DTD
HTML 4.01 Transitional//EN">
<
html>
<head>
<meta http-equiv="Content-Type" content="text/
html; charset=iso-8859-1">
Schalte ich hoForceEncodeParams aus, wird gar nichts mehr gepostet. sMessage wurde schon als AnsiString und String probiert. Mit Contenttype und Charset habe ich auch schon "rumgespielt", was aber auch keinen Erfolg brachte.
Hat jemand einen Tipp, wie man das unter Delphi 2010 zum Laufen bekommt?
Viele Grüße,
Uwe