将二进制转换为 ASCII,反之亦然
Python 提供了各种方法将字符串编码为二进制表示,反之亦然。
字符串转二进制
提供的代码使用reduce 将字符串转换为二进制。然而,更简单的方法是使用 Python 2 中的 binascii 模块和 Python 3 中的 int.from_bytes:
import binascii binary = bin(int(binascii.hexlify('hello'), 16)) # Python 2 binary = bin(int.from_bytes('hello'.encode(), 'big')) # Python 3+
二进制到字符串
要反转该过程,使用 Python 2 中的 binascii.unhexlify 和 Python 中的 int.to_bytes 方法3:
text = binascii.unhexlify('%x' % n) # Python 2 text = n.to_bytes((n.bit_length() + 7) // 8, 'big').decode() # Python 3+
UTF-8 支持
要支持 Python 3 中的所有 Unicode 字符,您可以创建自定义函数进行转换:
def text_to_bits(text, encoding='utf-8', errors='surrogatepass'): # Converts text to bits, supporting all Unicode characters ... def text_from_bits(bits, encoding='utf-8', errors='surrogatepass'): # Converts bits back to text, supporting all Unicode characters ...
这个自定义函数同时兼容Python 2和Python 3。
综上所述,Python提供了二进制字符串转换的各种方法。上述解决方案提供了高效灵活的方法来处理此任务,包括对 Unicode 字符的支持。
以上是如何在 Python 中高效地在二进制和 ASCII 字符串之间进行转换?的详细内容。更多信息请关注PHP中文网其他相关文章!