2014-11-06 19 views
0

我有一个使用Node.JS的项目。我需要用Latin1发送一个字符串到终端(UART串口)。我只是意识到我无法用1字节编码创建String对象(如Latin-1)。如何强制使用Latin-1编码而不是UTF-16处理JavaScript中的字符串?

我需要从字节数组中创建字符串。小于128的字节是ASCII字节,字符串与这些字节总是看起来不错。但是,如果我传递大于127的字节,那么我总是检索2字节的字符串(以UTF-16格式)。

我真的只想每个字节的1字节表示。我怎样才能做到这一点?

+0

可能的复制http://stackoverflow.com/questions/13735228 /编码问题 - 当写入到控制台在节点 - js) – nwellnhof 2015-11-25 11:30:37

+0

@nwellnhof,这不是同一个问题。在你引用的问题中,问题是关于输出的外观。但在我的问题中,我需要以1字节编码获取String对象。 – 2015-11-25 11:54:45

+0

您无法更改JavaScript字符串的编码。你需要一个接受字节数组的API。 – nwellnhof 2015-11-25 11:57:33

回答

0

IconV也许可以工作

喜欢的东西(未测试的代码!):

var Buffer = require('buffer').Buffer; 
    var Iconv = require('iconv').Iconv; 

    var iconv = new Iconv('UTF-16','latin1'); 

    bytes.forEach(function(byte){ 
     var bufferbyte = iconv.convert(byte); 
    }); 
[写入到node.js的控制台时编码问题(的
+0

我试图使用iconv,但有一个问题:没有方法会返回所需编码的字符串。只有字节表示。我需要将字符串发送到latin1中的终端。这个lib在这里帮不了忙。 – 2014-11-10 11:41:01

相关问题