如果Python的位数组包含非ASCII字节,我不知道如何将其转换为字符串。示例:
>>> string='\x9f'
>>> array=bytearray(string)
>>> array
bytearray(b'\x9f')
>>> array.decode()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x9f in position 0: ordinal not in range(128)
在我的例子中,我只是想从bytearray中得到一个字符串'\x9f'。有可能吗?
在Python 2中,只需将其传递给
str()
:在Python 3中,您需要将其转换回
bytes
对象:你试过了吗
我想提到Python附带的
binascii
库。我的用例:我正在查询一个数据库,其中有一个二进制字段被用作数据库中的键。我想拉那个二进制字段,把它当作其他地方的键。我认为把它转换成字符串是最好的用例。
比那西给了我更好的选择:
import binascii binary_field = bytearray(b'\x92...') binascii.hexlify(binary_field)
相关问题 更多 >
编程相关推荐