Вопрос по python, string – Как преобразовать мой bytearray ('b \ x9e \ x18K \ x9a') во что-то вроде этого -> '\ x9e \ x18K \ x9a' <--- просто str, а не массив

5

Как конвертировать мойbytearray('b\x9e\x18K\x9a') на что-то вроде этого - & gt;\x9e\x18K\x9a & lt; --- просто str, а не массив!

>> uidar = bytearray()
>> uidar.append(tag.nti.nai.uid[0])
>> uidar.append(tag.nti.nai.uid[1])
>> uidar.append(tag.nti.nai.uid[2])
>> uidar.append(tag.nti.nai.uid[3])
>> uidar
   bytearray('b\x9e\x18K\x9a')

Я пытаюсь расшифровать мой bytearray

uid  =  uidar.decode('utf-8')

но это не может ...

Traceback (most recent call last):
  File "<pyshell#42>", line 1, in <module>
    uid = uidar.decode("utf-8")
  File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x9e in position 0: invalid start byte

Помоги мне, пожалуйста ...

То, что вы просите, похоже, не имеет никакого смысла. Не могли бы вы расширить и уточнить свой вопрос, сказав, что вы пытаетесь достичь в целом? Francis Avila
Добро пожаловать на ТАК! Если вы удовлетворены ответом, отметьте его как принятый, щелкнув значок галочки рядом с вопросом. jterrace

Ваш Ответ

1   ответ
13

>>> str(bytearray('b\x9e\x18K\x9a'))
'b\x9e\x18K\x9a'

Latin-1 отображает первые 256 символов на их эквиваленты по байт-значениям, поэтому в Python 3.x:

3>> bytearray(b'b\x9e\x18K\x9a').decode('latin-1')
'b\x9e\x18K\x9a'
Огромное спасибо... user1376294

Похожие вопросы