IgorPI
@IgorPI

Как заставить сервер возвращать контент в указанной кодировке?

Коллеги, приветствую.

...
Result := '';
   uri := TURI.Create(FBaseUrl);
   uri.Path := url;

   http := THTTPClient.Create;
   http.ConnectionTimeout := 12000;
   http.AllowCookies := true;
   http.CookieManager := TCookieManager.Create;
   http.ContentType := 'text/html; charset=utf8';
   http.Accept := 'text/html';
   http.AcceptCharSet := 'utf8';
   http.AcceptLanguage := 'ru-RU,ru';
   http.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36';

   ResponseStream:= TStringStream.Create('', TEncoding.UTF8);
   ErrorCounter := 0;
   Reload:
   IsExcept:= false;
   try
     Response := http.Get(uri.ToString, ResponseStream);
     ResponseStream.SaveToFile('TMKCardLoader.html');   
     result := ResponseStream.DataString;
   except
      on E: Exception do
      begin
        OutputDebugString(Pwidechar(E.Message));
        Inc(ErrorCounter);
        IsExcept := true;
      end;
    end;
...


90 % всех случаев, возникает следующее исключение
No mapping for the Unicode character exists in the target multi-byte code page

Остальные 10 % претензий нет.

Вопросы:
Почему сервер возвращает контент как ему вздувается?
Как добиться загрузки в правильной кодировке?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы