IndyTHTTP
を使用して、 を持つ応答を取得Content-Type: text/html; charset=UTF-8
し、TStringStream
. 次に を使用するReponseStream.ReadString(ResponseStream.Size)
と、結果String
が正しく表示されません。これは、Windows が UTF-16 を使用しているためです。
TEncoding.UTF8
私はいくつかのことを試しTEncoding.Convert
ましたが、結果がさらに台無しになりました(中国語に見え始めました)。
現在のコードは次のとおりです。
var
LHTTP: TIdHTTP;
LResponseStream: TStringStream;
LResponse: String;
begin
LResponseStream := TStringStream.Create();
try
LHTTP := TIdHTTP.Create(nil);
try
LHTTP.Get('url', LResponseStream); // Returns 'hęllo'
finally
LHTTP.Free;
end;
LResponseStream.Position := 0;
LResponse := LResponseStream.ReadString(LResponseStream.Size);
ShowMessage(LResponse); // Make me pretty
finally
LResponseStream.Free;
end;
end;
通常の Delphi を取得するには、何を変更すればよいString
ですか?