Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.372 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Indy HTTPClient Post umlaute

  Alt 17. Apr 2024, 12:29
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;
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat