Как я могу преобразовать в Python 3 байта-строковая переменная в обычную строку?
Я прочитал в приложении электронной почты XML с
bytes_string=part.get_payload(decode=False)
полезная нагрузка поступает в виде байтовой строки, как предполагает мое имя переменной.
Я пытаюсь использовать рекомендуемый подход Python 3, чтобы превратить эту строку в полезную строку, которую я могу манипулировать.
пример показывает:
str(b'abc','utf-8')
как я могу применить b
(байт) ключевое слово аргумент для моей переменной bytes_string
и использовать рекомендованные подходить?
то, как я пытался не работает:
str(bbytes_string, 'utf-8')
4 ответа:
у вас это почти в последней строке. Ты хочешь
str(bytes_string, 'utf-8')
потому что типа
bytes_string
иbytes
, то же, что и типb'abc'
.
обновление:
ЧТОБЫ НЕ БЫЛО НИКАКИХ
b
и кавычки сначала и в концекак ваш код может иметь неузнаваемым символы
'utf-8'
кодировка, лучше использовать просто str без каких-либо дополнительных параметров:bad_bytes = b'\x02-\xdfI#)' text = str( bad_bytes )[2:-1]
если добавить
как фильтровать (пропускать) не-UTF8 charachers из массива?
чтобы обратиться к этому комментарию в сообщении @uname01 и OP, игнорируйте ошибки:
код
>>> b'\x80abc'.decode("utf-8", errors="ignore") 'abc'
подробности
С docs, вот еще примеры использования того же