如何在JavaScript中强制使用拉丁-1编码而不是UTF-16编码字符串?

如何在JavaScript中强制使用拉丁-1编码而不是UTF-16编码字符串?,javascript,node.js,encoding,utf-8,latin1,Javascript,Node.js,Encoding,Utf 8,Latin1,我有一个使用Node.JS的项目。我需要用拉丁文1向终端(UART COM端口)发送一个字符串。我刚刚意识到我不能用1字节编码(比如拉丁语1)创建String对象 我需要从字节数组中创建字符串。小于128的字节是ASCII字节,带有这些字节的字符串看起来总是很好。但如果我传递的字节大于127,那么我总是检索2个字节的字符串(在UTF-16中) 我真的只想要每个字节的1字节表示。我怎样才能做到这一点呢?也许行得通 类似(未经测试的代码!): 我试图使用iconv,但有一个问题:没有方法将返回所需编

我有一个使用Node.JS的项目。我需要用拉丁文1向终端(UART COM端口)发送一个字符串。我刚刚意识到我不能用1字节编码(比如拉丁语1)创建
String
对象

我需要从字节数组中创建字符串。小于128的字节是ASCII字节,带有这些字节的字符串看起来总是很好。但如果我传递的字节大于127,那么我总是检索2个字节的字符串(在UTF-16中)

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

也许行得通

类似(未经测试的代码!):


我试图使用iconv,但有一个问题:没有方法将返回所需编码的字符串。只有字节表示。我需要用拉丁文1向终端发送字符串。这个库在这里帮不上忙。可能是@nwellnhof的重复,这不是同一个问题。在您引用的问题中,问题与输出的外观有关。但在我的问题中,我需要以1字节的编码获取String对象。您不能更改JavaScript字符串的编码。你需要一个接受字节数组的API。我的一个程序员以某种方式解决了这个问题。我真的忘了在这里添加他的解决方案。但在应用程序中,现在所有的工作都很好。
  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);
  });