如何強制TIdHttp.post方法返回以utf-8編碼的網頁?我試過http.Request.ContentEncoding := 'UTF-8'
但它沒有網絡。這是我的代碼:TIdHttp.Post - 無法獲得utf-8編碼
procedure TeUpdateNews.Check;
var url: string;
Http: TIdHttp;
SS: TStringStream;
param: TStringList;
SWIDESTRING: WideString;
begin
http := TIDHttp.Create(nil);
http.HandleRedirects := true;
http.ReadTimeout := 5000;
http.Request.ContentEncoding := 'UTF-8';
param := TStringList.create;
param.Clear;
url := CONST_SOME_WWW;
try
SS := TStringStream.Create;
try
SWIDESTRING := http.Post(url, param);
// it's not getting utf-8!
ShowMessage(SWIDESTRING);
finally
SS.Free;
param.free;
end;
finally
Http.Free;
end;
end;
你可以用一個「接收字符集:UTF-8」試頭(請參閱[HTTP標頭字段列表](http://en.wikipedia.org/wiki/List_of_HTTP_header_fields))。但服務器沒有義務返回UTF-8。但是,Delphi XE2中的Indy應該將HTTP響應轉換爲Delphi UnicodeString,不需要將該變量聲明爲WideString。 – mjn