0
저는 HTTP를 처음 사용합니다. ANSI 또는 UTF-8로 인코딩 된 텍스트를 반환하는 여러 HTTP GET이 있습니다. 거기에 반환되는 결정할 수있는 방법을 그래서 나는 시도하고 각각에 대해 필요한 변환을 하드 코딩 메서드에서 변환을 처리 할 수 있습니까? 또는 그것이 Indy 자체로 처리 될 수 있다면?TIdHTTP에서 응답 데이터 인코딩을 결정하는 방법은 무엇입니까?
홈페이지 방법을 문자열
procedure TIdHTTPHelper.SendGet
(const AURL : String;
var AResponse: String);
var
Response : TMemoryStream;
begin
Response := TMemoryStream.Create;
SendGet (AURL, Response);
SetLength (AResponse, Response.Size div 2);
Response.Read (AResponse [1], Response.Size);
Response.Free;
end;
'Content-Type' 헤더의'Charset' 매개 변수를 검사해야합니다. –
나는 얼마 전 비슷한 질문을 한 것으로 생각합니다. [Remy Lebeau의 대답] (http://stackoverflow.com/a/18832982/800214) 도움이 될 것 같습니다. 어쨌든 TMemoryStream을 Strings로 사용하지 말고 TStringStream을 사용하십시오 – whosrdaddy
'TStringStream'을 사용하지 마십시오! D2009 +에서는 생성자에서'TEncoding'을 지정해야합니다. 나중에 변경할 수 없습니다. 미리 정확한 캐릭터 세트를 알지 못하면 인코딩을 쉽게 일치시키지 않고 변환 실패를 일으킬 수 있습니다. –