gpt4 book ai didi

node.js - Node 缓冲区,从 utf8 到二进制

转载 作者:搜寻专家 更新时间:2023-10-31 22:59:33 25 4
gpt4 key购买 nike

我正在从源接收数据作为 utf8,并且该数据最初是二进制形式(它是一个 Buffer)。我必须将此数据转换回 Buffer。我很难弄清楚如何做到这一点。

这是一个显示我的问题的小示例:

var hexString = 'e61b08020304e61c09020304e61d0a020304e61e65';
var buffer1 = new Buffer(hexString, 'hex');

var str = buffer1.toString('utf8');
var buffer2 = new Buffer(str, 'utf8');

console.log('original content:', hexString);
console.log('buffer1 contains:', buffer1.toString('hex'));
console.log('buffer2 contains:', buffer2.toString('hex'));

打印

original content: e61b08020304e61c09020304e61d0a020304e61e65
buffer1 contains: e61b08020304e61c09020304e61d0a020304e61e65
buffer2 contains: efbfbd1b08020304efbfbd1c09020304efbfbd1d0a020304efbfbd1e65

在这里,我希望 buffer2buffer1 完全相同。

如何将 utf8 字符串转换为其原始二进制 Buffer

最佳答案

由于 utf8 的工作方式(尤其是当无效的 utf8 字符被替换为 \ufffd 时),您不能期望转换为 utf8 并再次转换回来的二进制数据与原始二进制数据相同。

您必须使用另一种能够正确保存数据的格式。这可以是“hex”、“base64”、“binary”或第三方模块提供的其他一些二进制安全格式。显然,如果可以的话,您应该将其保留为缓冲区。

关于node.js - Node 缓冲区,从 utf8 到二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25223776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com