节点编码和解码utf-16缓冲区

node encode and decode utf-16 buffer

本文关键字:utf-16 缓冲区 解码 编码 节点      更新时间:2023-09-26

我正在开发一个javascript/nodejs应用程序,它需要与c++ tcp/udp套接字通信。似乎我从旧的c++客户端得到了一个utf16缓冲区。我没有找到一个解决方案,现在把它转换成一个可读的字符串,另一个方向似乎是同样的问题。

这两个方向有捷径吗?

好问候

如果您有一个utf -16编码的缓冲区,您可以将其转换为UTF-8 Javascript字符串,如下所示:

let string = buffer.toString('utf16le');

要从流中读取这些,最简单的方法是在最后使用convert To string:

let chunks = [];
stream.on('data', chunk => chunks.push(chunk))
      .on('end',  ()    => {
        let buffer = Buffer.concat(chunks);
        let string = buffer.toString('utf16le');
        ...
      });

将JS字符串转换为UTF-16:

let buffer = Buffer.from(string, 'utf16le')