Eu li em um anexo de e-mail XML com
bytes_string=part.get_payload(decode=False)
A carga útil vem como uma string de bytes, como meu nome de variável sugere.
Estou tentando usar a abordagem recomendada do Python 3 para transformar essa string em uma string utilizável que eu possa manipular.
O exemplo mostra:
str(b'abc','utf-8')
Como posso aplicar o b
argumento de palavra-chave (bytes) à minha variável bytes_string
e usar a abordagem recomendada?
O jeito que tentei não funciona:
str(bbytes_string, 'utf-8')
string
python-3.x
type-conversion
bytestring
DjangoTango
fonte
fonte
str(bytes_string, 'utf-8', 'ignore')
Os erros podem ser ignorados passando o terceiro parâmetro.bytes_string
, por que deseja ignorar os erros?UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
para os seguintes bytes stringb'\xbf\x8cd\xba\x7f\xe0\xf0\xb8t\xfe.TaFJ\xad\x100\x07p\xa0\x1f90\xb7P\x8eP\x90\x06)0'
@TobySpeightChame
decode()
umabytes
instância para obter o texto que ela codifica.fonte
ATUALIZADA:
Como seu código pode ter caracteres irreconhecíveis para
'utf-8'
codificação, é melhor usar apenas str sem quaisquer parâmetros adicionais:se você adicionar
'utf-8'
parâmetro, a esses bytes específicos, deve receber um erro.Como diz o padrão PYTHON 3, agora
text
estaria no utf-8 sem preocupação.fonte
b
primeiro, atualizei a respostaPara abordar este comentário na postagem de @ uname01 e no OP, ignore os erros:
Código
Detalhes
Nos documentos , aqui estão mais exemplos usando o mesmo
errors
parâmetro:fonte