Post()
メソッドから得られた結果のアクセントに関する大きな問題があります。TIdHTTP
です。TIdHttpとDelphiを使用したISO-88559-1エンコーディングでのエラー
私がアクセスしているURLはすでに正しくコーディングされています。結果がテキストファイルに保存されているだけです。しかし、私が作成した関数でデータをDelphiに持ってくると、アクセント付きの文字の代わりに、文字 "?"出現している。
たとえば、ページの結果がConexão não configurada
の場合、関数の結果はConex?o n?o configurada
になります。
StackOverflowでここに投稿されたいくつかのフォームを試しましたが、成功しませんでした。次のように
My機能は次のとおりです。
function HttpPost(PostUrl: string; PostParams: TStringList): string;
var
IdHTTP1: TIdHTTP;
IOHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
IdHTTP1 := TIdHTTP.Create(nil);
IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdHTTP1.IOHandler := IOHandler;
IdHTTP1.HandleRedirects := True;
IdHTTP1.Request.ContentType := 'text/html';
IdHTTP1.Request.CharSet := 'ISO-8859-1';
IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
IdHTTP1.ReadTimeout := 20000;
try
Result := IdHTTP1.Post(PostUrl, PostParams);
except
on E:Exception do
begin
Result := 'ErrorExcept';
Msg(E,2);
end;
end;
IdHTTP1.Free;
IOHandler.Free;
end;
インディの更新バージョン10.6.2.0
参考までに、インディの現在のバージョンは10.6.2.5438 –