读取2字节utf8二进制数据

Reading 2 byte utf8 binary data

例如,我有包含 utf8 字符串的二进制文件。

4F 00 4B 00

我正在尝试读取此数据并将其写入文本文件,但是当我执行以下操作时:

data.toString('utf8');

我得到以下输出:

O K

注意从 00 中解释的两个空格。有什么方法可以指定我使用的是 2 字节小字节序字符吗?我想如果这不包含 ascii 字符,这实际上会破坏并产生垃圾数据而不是额外的空格。

问题可能出在您读取字符串时,而不是写入字符串时。您共享的字符串不是 UTF-8,而是 UTF-16。所以我想你想要的是读取字符串作为UTF-16并将其写入UTF-8。

具体来说,这是 UTF-16LE。