Das stimmt, mit dem UTF8Encode kommt es falsch an. Es sei denn ich lese es auf dem Server auch wieder als UTF-8 ein:
Delphi-Quellcode:
<?php
print_r(mb_convert_encoding($_POST, 'ISO-8859-1', 'UTF-8'));
?>
Der Grund ist simpel:
Du kodierst es zwar als UTF-8, teilst das aber nicht mit. ICS wiederum verwendet UTF-8 Encoding als Standard, weshalb du das dort nicht explizit setzen musst.
Korrekt mit
Indy ist daher:
Delphi-Quellcode:
pdata:=TStringList.Create;
for i:=0
to memoPost.Lines.Count-1
do begin
pdata.Add(UTF8Encode(memoPost.Lines.Strings[i]));
end;
try
HTTPClient.Request.ContentEncoding := '
UTF-8';
line:=HTTPClient.Post(
URL,pdata);
except
i:=1;
end;
memoAnswer.Lines.Text:=line;