如果它包含非ASCII字节,我不知道如何将Python的位数组转换为字符串。例子:

>>> 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)

在我的示例中,我只想以某种方式从字节数组中获取字符串“\x9f”。那可能吗?

最佳答案

在Python 2中,只需将其传递给str():

>>> import sys; sys.version_info
sys.version_info(major=2, minor=7, micro=8, releaselevel='final', serial=0)
>>> string='\x9f'
>>> array=bytearray(string)
>>> array
bytearray(b'\x9f')
>>> str(array)
'\x9f'

在Python 3中,您希望将其转换回bytes对象:
>>> bytes(array)
b'\x9f'

10-04 13:24