Как получить кодировку страницы на node.js?

Пользователь

от olen.shanahan , в категории: JavaScript , 7 месяцев назад

Как получить кодировку страницы на node.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от brooklyn , 7 месяцев назад

@olen.shanahan 

В Node.js можно получить кодировку страницы с помощью модуля http. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const http = require('http');

const options = {
  hostname: 'example.com',
  port: 80,
  path: '/',
  method: 'GET'
};

const req = http.request(options, (res) => {
  console.log('statusCode:', res.statusCode);
  console.log('headers:', res.headers);

  const contentType = res.headers['content-type'];
  const charsetMatch = contentType.match(/charset=([^;]+)/);
  const charset = charsetMatch ? charsetMatch[1].toLowerCase() : 'utf-8';

  console.log('Charset:', charset);

  res.on('data', (chunk) => {
    console.log(chunk.toString(charset));
  });
});

req.on('error', (e) => {
  console.error(e);
});

req.end();


В этом примере мы отправляем GET-запрос на example.com и получаем ответ с помощью res.on('data'). Чтобы правильно декодировать ответ, мы ищем в заголовках ответа content-type и извлекаем из него кодировку. Если кодировка не указана, мы используем UTF-8 как значение по умолчанию. Затем мы вызываем chunk.toString(charset) для декодирования ответа в строку.