Windows nodejs解码(子进程使用)

Windows nodejs解码(子进程使用),windows,node.js,utf-8,decode,Windows,Node.js,Utf 8,Decode,我使用spawn for JScript(从windows) 我的文本解码问题 ???T-SQL Microsoft SQL Server 2012 ??-俄文文本 var worker,path = require('path'), spawn = require('child_process').spawn, cscript = path.join(process.env.SystemRoot, 'system32', 'cscript.exe') function startCscri

我使用spawn for JScript(从windows) 我的文本解码问题

???T-SQL Microsoft SQL Server 2012

??-俄文文本

var worker,path = require('path'), spawn = require('child_process').spawn, cscript = path.join(process.env.SystemRoot, 'system32', 'cscript.exe')

 function startCscript() {
    worker = spawn( cscript, [ '/nologo', 'testwsh.js' ] );
    worker.stdout.setEncoding('utf8');
    worker.stdout.on( 'data', onData );
}

function onData (data) {
    console.log(data.toString());
}
startCscript();

我怎样才能得到俄语字母?谢谢大家)

您可以尝试将工作编码设置为
ucs2
utf16le
。 改变这个

worker.stdout.setEncoding('utf8');
对此

worker.stdout.setEncoding('ucs2');
说明它是否解决了问题。

查看并:

Node.js总是希望子进程输出UTF-8,但是 俄语区域设置的Windows默认为CP866


您需要执行
chcp 65001
以更改当前控制台代码页

我的解决方案:使用iconv lite在控制台中获取俄语文本。

您的cscript是否可能是这样输出的?您使用的是什么版本的windows?有没有可能整个操作系统都不能显示西里尔字母?Microsoft Windows[Version 6.1.7600],俄文。如果脚本运行为:cscript my_cscript.js(cscript.js:WSH.Echo(“一切正常”),那么一切都很好,我可以看到俄文文本!结果ufcs2:service.js:107敢楧㩮海彩潨晴硩䌺灡楴湯䠬瑯楆䥸ⱄ湉瑳污敬佤൮栊瑴㩰⼯潧洮捩潲潳瑦挮浯是汷湩⽫.................嗯,不是工作。Console.log为空:(var spawn=require('child|process').spawn,path=require('path'),cscript=path.join(process.env.SystemRoot,'system32','cscript.exe'),worker=spawn('chcp 866 |'+cscript,['/nologo','1.js]);worker.stdout.on('data',函数(data){console.log(data.toString());});