Несколько дней назад я переписал вопрос о «Delphi & Indy & utf8», которому вы помогаете мне разрешить кодировку, кодифицированную в utf8, но иногда та же самая процедура используется для доступа к другим www с другой кодировкой.
процедура такова (в delphi xe6):
var
Web: TIdHTTP;
ASito : AnsiString;
TStr : TStringStream;
hIOHand: TIdSSLIOHandlerSocketOpenSSL;
begin
try
Web := TIdHTTP.Create(nil);
TStr := TStringStream.Create('',TEncoding.UTF8);
hIOHand := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
hIOHand.SSLOptions.SSLVersions := [sslvTLSv1,sslvTLSv1_1,sslvTLSv1_2,sslvSSLv23];
Web.IOHandler := hIOHand;
Web.Request.UserAgent := INET_USERAGENT; //Custom user agent string
Web.RedirectMaximum := INET_REDIRECT_MAX; //Maximum redirects
Web.HandleRedirects := INET_REDIRECT_MAX <> 0; //Handle redirects
Web.ReadTimeOut := INET_TIMEOUT_SECS * 1000; //Read timeout msec
Web.ConnectTimeout := INET_TIMEOUT_SECS div 2 * 1000;
try
Web.Get(FUrl,TStr);
Sito := TStr.DataString;
except
on e : exception do
Sito := 'ERR: ' +FUrl+#32+e.Message;
end
finally
EndTime := Now;
TStr.Free;
Web.Free;
hIOHand.Free;
end;
Какой метод используется для определения кода кодировки на любой странице www?Некоторые страницы, к которым я обращаюсь, находятся в json (и в этом случае я должен использовать utf8).Я пробовал больше вариантов ... но я не могу найти правильное решение.
Спасибо за помощь!