解码没有换行符的base64字符串
Decode base64 string without newline character
我正在处理一些 base64 数据。预期输出是 6 个十六进制数字,如第一个示例所示。但是有时我会得到一个换行符,就像第二个例子(有 5 个十六进制值)
base64.b64decode('DAAI9BTT')
b'\x0c\x00\x08\xf4\x14\xd3'
base64.b64decode('DAAKRRTT')
b'\x0c\x00\nE\x14\xd3'
我怀疑我得到了值 0A 并且它被转换为换行符。当我 trim 换行符时,我错过了一个十六进制值
\n
只是来自 __repr__
的 bytearray 的字符串表示。将字节数组的内容提取到一个列表中,得到你期望的结果:
[p for p in base64.b64decode('DAAKRRTT')]
# Output: [12, 0, 10, 69, 20, 211]
或者,十六进制:
[hex(p) for p in base64.b64decode('DAAKRRTT')]
# Output: ['0xc', '0x0', '0xa', '0x45', '0x14', '0xd3']
我正在处理一些 base64 数据。预期输出是 6 个十六进制数字,如第一个示例所示。但是有时我会得到一个换行符,就像第二个例子(有 5 个十六进制值)
base64.b64decode('DAAI9BTT')
b'\x0c\x00\x08\xf4\x14\xd3'
base64.b64decode('DAAKRRTT')
b'\x0c\x00\nE\x14\xd3'
我怀疑我得到了值 0A 并且它被转换为换行符。当我 trim 换行符时,我错过了一个十六进制值
\n
只是来自 __repr__
的 bytearray 的字符串表示。将字节数组的内容提取到一个列表中,得到你期望的结果:
[p for p in base64.b64decode('DAAKRRTT')]
# Output: [12, 0, 10, 69, 20, 211]
或者,十六进制:
[hex(p) for p in base64.b64decode('DAAKRRTT')]
# Output: ['0xc', '0x0', '0xa', '0x45', '0x14', '0xd3']