將二進位轉換為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中文網其他相關文章!