@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» в вашей консоли.