powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / child_process stdout в cp866
2 сообщений из 2, страница 1 из 1
child_process stdout в cp866
    #38756451
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите как ему задать 866 кодировку для консоли?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
console.log('start app  (%s%s; node %s; pid:%s)',process.platform, process.arch, process.version, process.pid);

var spawn = require('child_process').spawn;
var pr    = spawn('test.bat');

//пробую все возможные варианты:
var enca = ['UTF8','utf8','utf-8','866','cp866','CP866','CP-866','cp-866','cp 866','CP 866','dos','dos866','dos-866','OEM','OEM866','OEM-866'];
for(var i=0;i<enca.length;i++){
  var enc = enca[i];
  var is_err = 0;
  try {
    pr.stdout.setEncoding(enc);
  } catch(err) {
    is_err = 1;
    console.log(err);
  }
  if (!is_err) console.log('work: ' + enc);
}


pr.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});



в результате utf8 как попало прокатывает а 866 вообще никак:
start app (win32ia32; node v0.11.11; pid:2892)
work: UTF8
work: utf8
work: utf-8
[Error: Unknown encoding: 866]
[Error: Unknown encoding: cp866]
[Error: Unknown encoding: CP866]
[Error: Unknown encoding: CP-866]
[Error: Unknown encoding: cp-866]
[Error: Unknown encoding: cp 866]
[Error: Unknown encoding: CP 866]
[Error: Unknown encoding: dos]
[Error: Unknown encoding: dos866]
[Error: Unknown encoding: dos-866]
[Error: Unknown encoding: OEM]
[Error: Unknown encoding: OEM866]
[Error: Unknown encoding: OEM-866]
??????


а если в bat файле русские символы то они все в виде вопросительных знаков отображаются...

подскажите как работать с русской кодировкой из консоли?
...
Рейтинг: 0 / 0
child_process stdout в cp866
    #38757565
zloyGamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zloyGamer,
отвечу сам себе и выражу огромную благодарность ashtuchkin'у за модуль iconv-lite который решает все проблемы в 2 строки:
Код: javascript
1.
2.
3.
var iconv = require('iconv-lite');
iconv.extendNodeEncodings();
//после этого предыдущий код работает )




всем спасибо за внимание
люблю, целую, пока
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Серверный JavaScript (Node.js, Ringo, Nitro, Sling) [игнор отключен] [закрыт для гостей] / child_process stdout в cp866
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]