如何将字符串精确转换为字节?

Posted

技术标签:

【中文标题】如何将字符串精确转换为字节?【英文标题】:How to convert a string to bytes exactly? 【发布时间】:2022-01-10 08:24:40 【问题描述】:

我需要将 a 字符串完全转换为字节,因此看起来 b 和 binascii.hexlify() 对于 a 和 b 都是相同的。最好的方法? Python 3.10.0

a = "\x8e"
b = b'\x8e'
print(bytes(a, 'utf-8')) # b'\xc2\x8e'
print(b) # b'\x8e'
print(binascii.hexlify(bytes(a, 'utf-8'))) # b'c28e'
print(binascii.hexlify(b)) # b'8e'

【问题讨论】:

***.com/questions/7585435/… - my_str_as_bytes = str.encode(my_str) \x8e 超出 7 位的 ASCII 范围。这意味着如何将其转换为字节是编码和代码页的问题。这就是为什么在 Python 3 中字符串和字节被分开的原因。为你的目的使用右边的(字节)! 它是 b'\xc2\x8e',我希望它是 b'\x8e'。还有,为什么要加\xc2? 【参考方案1】:
a = r'\x8e'
exec('my_string = b"' + a + '"')
print(my_string)

就是这样。

【讨论】:

以上是关于如何将字符串精确转换为字节?的主要内容,如果未能解决你的问题,请参考以下文章

我正在使用二进制阅读器将字符串转换为字节,如何将字节反转回相同的字符串 [重复]

如何将字节数组转换为字符串[重复]

如何将字符串转换为字节数组? [关闭]

如何将压缩的(高位字节删除)字节转换为Unicode字符串?

如何将字节数组转换为字符串? [复制]

如何将字节数组的字符串转换为字节数组