Einzelnen Beitrag anzeigen

Benutzerbild von Cyberaxx
Cyberaxx

Registriert seit: 15. Jul 2005
311 Beiträge
 
Delphi XE5 Professional
 
#1

Indy idHTTP Probleme mit Umlaute

  Alt 18. Jan 2013, 21:48
Delphi 2010
Indy 10.5.9.4797

Hallo,

habe da ein hoffentlich kleine Problem mit der Komponente idHTTP und den lieben Umlauten. Diese werden bei mir mit einem ? ersetzt bei der Ausgabe.

Ausgabe im folgenden Beispiel:
Code:
???
Delphi-Quellcode:
function StringToURLString(aUTF8String: String): String;
  var
    I: Integer;
begin
  Result := '';
  for I := 1 to length(aUTF8String) do
    Result := Result + '%' + String(IntToHex(Ord(aUTF8String[i]),2));
end;

procedure TForm7.Button1Click(Sender: TObject);
  var
    Daten: TIdMultiPartFormDataStream;
    Content: string;
    URL: string;
begin
  Daten := TIdMultiPartFormDataStream.Create;
  try
    Daten.AddFormField('test', StringToURLString('öäü -- ÖÄÜ'));
    try
      URL := Format('%s?version=%s&test=%s', [edtHost.Text, edtVersion.Text, StringToURLString('ÖÄÜ')]);
      IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
      //idHTTP1.Request.ContentType:= 'multipart/form-data';
      //Content := UTF8ToUnicodeString(IdHTTP1.Post(URL, Daten));
      Content := IdHTTP1.Post(URL, Daten);
      EmbeddedWB1.LoadFromString(Content);
    except
      on E: Exception do
        ShowMessage('Fehler: ' + #13#10 + E.Message);
    end;
  finally
    Daten.Free;
  end;
end;
Der entsprechende PHP Teil:
Code:
header('Content-Type: text/xml');  
$Entry2 = urldecode($_GET['test']); echo $Entry2; die('');
Rufe ich im Browser direkt http://192.168.11.10/web/apiPostTest...test=%D6%C4%DC aud bekomme ich ÖÄÜ Angezeigt. Nur die Http Komponente macht daraus eben ???

Nutze ich hingegen noch einmal URLEncode dazu dann bekomme ich im Browser folgendes %C3%84%C3%96%C3%9C. Von der HTTP Komponente dagegen %D6%C4%DC

Bei einem Bekannten ebenfalls D2010 und den Indies die bei Delphi im Standard kommen klappt es ohne Probleme rein mit dem URLDecode seitens PHP.
Ist da vielleicht der Wurm in der Indy zu suchen? Bzw hat jemand schon einmal das Problem gehabt und kennt eine Lösung?
Daniel
Das Aufwachen aus einem boesen Traum muss einen nicht erleichtern. Es kann einen auch erst richtig gewahr werden lassen, was man Furchtbares getraeumt hat, vielleicht sogar welcher furchtbaren Wahrheit man im Traum begegnet ist!
  Mit Zitat antworten Zitat