@Makanchor

Почему получается неверная кодировка при парсинге html?

Парсю страничку https://classinform.ru/fkko-2017.html.

В браузере все в порядке, при копировании руками тоже отлично копируется. Когда делаю UrlFetchApp.fetch(), кириллица превращается в �, при этом кодировка utf-8.

Параметры запроса

var options = {
  "method": "get",
  "headers": {},
}


ЧЯДНТ?
  • Вопрос задан
  • 278 просмотров
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Обычно, всегда при fetch нужно указывать кодировку. Но так сложилось, что все привыкли к UTF-8.

Укажите кодировку вашего контента при извлечении

const data = UrlFetchApp.fetch('https://classinform.ru/fkko-2017.html.');
console.log(data.getContentText('windows-1251'));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker
Программист, энтузиаст
Там страница в cp1251. Эта кодировка указана в специальном теге на странице:
<meta http-equiv="content-type" content="text/html; charset=windows-1251">

При копировании из браузера система учитывает эту кодировку и конвертирует её на лету. Вам следует конвертировать html-код в utf-8, перед парсингом, либо конвертировать отдельно вырезанные фрагменты.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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