nodejs decode(子进程使用)

时间:2013-03-15 10:10:30

标签: 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 startCscript() {
    worker = spawn( cscript, [ '/nologo', 'testwsh.js' ] );
    worker.stdout.setEncoding('utf8');
    worker.stdout.on( 'data', onData );
}

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

我如何获得俄文字母?谢谢大家)

3 个答案:

答案 0 :(得分:0)

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

worker.stdout.setEncoding('utf8');

到这个

worker.stdout.setEncoding('ucs2');

告诉它是否解决了这个问题。

答案 1 :(得分:0)

查看issue 2190issue 2196

  

Node.js总是期望来自子进程的UTF-8输出,但是   具有俄语语言环境的Windows默认为CP866

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

答案 2 :(得分:0)

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