gpt4 book ai didi

javascript - 使用 Buffer 对象解码 base64 输入

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:08 25 4
gpt4 key购买 nike

我有一个客户端接口(interface),用于发送以 Base64 编码的二进制数据。该数据是描述事件的 29 字节自定义格式的字节负载。 29个字节由许多字段组成;每个都有独特的长度。

我需要服务器对其进行解码,以便我可以提取字段。我尝试过使用 Buffer对象,就像我对另一个用例所做的那样,其中 data was passed in hex format ,没有成功。

buff = new Buffer('AR0AAAEKCgsLDAwAAATSAAAADsgAAAAAAAAAzMQ=', 'base64');

// track the current position
// ... get out to the data portion of the message
var position = 3;

// event type
var event_type = buff.slice(position,(position+3)).toString('utf8');
position += 3;
console.log('... event type: ' + event_type + ' /');

// address
var addr = buff.slice(position,(position+3)).toString('utf8');
position += 3;
console.log('... addr: ' + addr + ' /');

.toString('utf8') 可能是根本原因。如何在这些 slice() 调用中获得表示所需字节的字符串?

我不会像通常使用 Base64 编码那样在服务器上讲述二进制数据。那么我应该从 base64 到其他编码来访问各个字节吗?

我在使用 Base64 编码的已知文本字符串上使用了相同的代码来验证基本逻辑。但是,当源数据在编码之前是二进制时,控制台语句不会打印任何内容。我可以从二进制转换为 Base64 再转换为字符串吗?

最佳答案

数据似乎没有有效的 ASCII 或 UTF-8 字符串,event_type 和 addr 是一些二进制数据。使用十六进制表示并打印它。

var event_type = buff.slice(3,6).toString('hex');  => '00010a'

关于javascript - 使用 Buffer 对象解码 base64 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8246763/

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