如何在Python中复刻NodeJS的Bytearray转Base64功能?
Python复刻NodeJS的Base64编码逻辑处理bytearray
你之前的操作方向搞反了——NodeJS里的代码是把二进制消息编码成Base64字符串,而不是解码。你之前用base64.b64decode是做解码操作,自然得不到正确结果。
在Python里直接用base64.b64encode处理你的bytearray即可,步骤如下:
- 导入
base64模块 - 对目标bytearray执行Base64编码
- 将编码后的bytes对象转成字符串
具体代码示例:
import base64 # 你的目标bytearray data = bytearray(b"~QF\xc2\x13\x04\xca=`\xc3\xef\xfd\x8bc\xb3\xcf'V\xa3n\xeb\xccX\x97\xb2\xe6\xe0\xca\x12\x85\xac\x8b\xca\xd3hj\xb3\xc0\xedF\x84\x91\x83\t\xfe:\xdd@\xeb?O\xf8\xc2\xf1,\x8d\xfc\x1ag\xddZ\xd0\x14\xcc") # 复刻NodeJS的逻辑:二进制转Base64字符串 base64_str = base64.b64encode(data).decode('utf-8') print(base64_str)
执行后得到的结果和NodeJS中Buffer.from(...).toString('base64')的输出完全一致。
另外补充:你之前尝试的utf-8/utf-16-le等文本编码解码之所以失败,是因为这个bytearray本身不是标准文本编码的二进制数据,而是原始二进制流,这类数据本来就不能直接用文本编码解码成可读字符串,转Base64是为了把二进制数据转换成可安全传输/存储的文本格式。
内容的提问来源于stack exchange,提问作者Dome
相关产品推荐
相关产品推荐

