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



@vool

Привет, написал простой скрипт для эмулирования цмдешки:

const { spawn } = require('node:child_process');
const command = spawn('ping', ["google.com"])
command.stdout.on('data', output => {
   console.log(output.toString())
})

Сколько я не мучился, не могу нормально отобразить кодировку, пробовал iconv-lite, не работает, как исправить?


Решения вопроса 0


Ответы на вопрос 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» в вашей консоли.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *