@NkDev

Как указать кодировку при fetch в JavaScript?

Когда я делаю запрос fetch, мне приходят данные в виде символов "�������".

Вот мой код:

fetch('httрs://www.karoteka.ru/')
        .then((re)=>{
            return re.text()
        })
        .then((re)=>{
            let doc = new DOMParser().parseFromString(re, "text/html");
            let b = doc.querySelectorAll(".news_item .image_block_no_image p")[0].innerHTML;

            console.log(b);
        });


Скажите, как выставить нужную кодировку для ответа?
  • Вопрос задан
  • 649 просмотров
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
fetch('https://www.kartoteka.ru/')
    .then((response) => response.arrayBuffer())
    .then((buffer) => {
        let html = new TextDecoder('windows-1251').decode(buffer);
        let doc = new DOMParser().parseFromString(html, 'text/html');
        let b = doc.querySelectorAll(".news_item .image_block_no_image p")[0].innerHTML;

        console.log(b);
    });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@zkrvndm
Софт для автоматизации
Скачайте страницу как файл, а затем этот файл прочитайте как текст через FileReader, там можно указать кодировку:
fetch('https://www.kartoteka.ru/').then(function(promise) {
	return promise.blob();
}).then(function(file) {
	var reader = new FileReader();
	reader.readAsText(file, 'windows-1251');
	reader.onload = function() {
		var doc = new DOMParser().parseFromString(reader.result, 'text/html');
		var b = doc.querySelectorAll(".news_item .image_block_no_image p")[0].innerHTML;
		console.log(b);
	};
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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