python将字符串识别为已经被咬的数据,或强制绕过编码和转换对象

标签 python hex

在 python 中,我有一串十六进制值 'e65814e4382759f85550029e723dc7e7',我想将其编码为字节,问题是如果我使用

b'string'

bytes(string, 'ascii')

它将值编码为字节,就好像它是一个字符串,但它们不是,它已经是一组 16 个十六进制对。

那么我如何让 python 识别我写的内容作为已经在咬中的数据,或者强制绕过以在某种意义上“按原样”编码和转换对象。

最佳答案

您想使用 binascii 模块:

>>> import binascii
>>> hexstr = 'e65814e4382759f85550029e723dc7e7'
>>> binascii.unhexlify(hexstr)
b"\xe6X\x14\xe48'Y\xf8UP\x02\x9er=\xc7\xe7"

并向自己证明...

>>> [f"{b:x}" for b in  binascii.unhexlify(hexstr)]
['e6', '58', '14', 'e4', '38', '27', '59', 'f8', '55', '50', '2', '9e', '72', '3d', 'c7', 'e7']

关于python将字符串识别为已经被咬的数据,或强制绕过编码和转换对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50902906/

相关文章:

python - 使用脚本或工具仅获取 HTML <head> 元素

python regex 3 相同的 [0-9A-Fa-f] 对

c# - 从 Java 到 C# 的函数

c - 正在存储截断的值

python - pandas.to_datetime 时间字符串格式不一致

python - 使用列表时的排序问题

python - 检测图像中的水平线

Python - 迭代整数列表

java - 将十六进制转换为具有 3 位数字的 char

c - 使用 fscanf(file, %x, x) 并在 C 中将十六进制转换为整数