读取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。
例如,我有包含 utf8 字符串的二进制文件。
4F 00 4B 00
我正在尝试读取此数据并将其写入文本文件,但是当我执行以下操作时:
data.toString('utf8');
我得到以下输出:
O K
注意从 00
中解释的两个空格。有什么方法可以指定我使用的是 2 字节小字节序字符吗?我想如果这不包含 ascii 字符,这实际上会破坏并产生垃圾数据而不是额外的空格。
问题可能出在您读取字符串时,而不是写入字符串时。您共享的字符串不是 UTF-8,而是 UTF-16。所以我想你想要的是读取字符串作为UTF-16并将其写入UTF-8。
具体来说,这是 UTF-16LE。