vool
@vool
Разработчик

Крякозябры в функции spawn, как исправить?

Привет, написал простой скрипт для эмулирования цмдешки:
const { spawn } = require('node:child_process');
const command = spawn('ping', ["google.com"])
command.stdout.on('data', output => {
   console.log(output.toString())
})

Сколько я не мучился, не могу нормально отобразить кодировку, пробовал iconv-lite, не работает, как исправить?
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 1
@5465
Проблема с крякозябрами может быть связана с тем, что вывод команды "ping" в консоли использует кодировку, отличную от кодировки консоли, которую вы используете. В этом случае вы можете попробовать использовать параметр кодировки в функции spawn, чтобы установить правильную кодировку для вывода. Вот пример кода, который может помочь:

const { spawn } = require('node:child_process');
const iconv = require('iconv-lite');

const command = spawn('ping', ['google.com'], {
  stdio: ['ignore', 'pipe', 'ignore'],
  encoding: 'win1251' // замените кодировку на нужную
});

command.stdout.on('data', output => {
  console.log(iconv.decode(output, 'win1251')); // замените кодировку на нужную
});


Здесь мы используем модуль iconv-lite для декодирования вывода команды с использованием правильной кодировки, установленной в параметре "encoding" функции spawn. В примере мы использовали кодировку "win1251", но замените ее на ту, которую использует вывод команды "ping" в вашей консоли.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы