Ich habe in einem XML-E-Mail-Anhang mit gelesen
bytes_string=part.get_payload(decode=False)
Die Nutzdaten werden als Byte-Zeichenfolge eingegeben, wie mein Variablenname andeutet.
Ich versuche, den empfohlenen Python 3-Ansatz zu verwenden, um diese Zeichenfolge in eine verwendbare Zeichenfolge umzuwandeln, die ich bearbeiten kann.
Das Beispiel zeigt:
str(b'abc','utf-8')
Wie kann ich das b
Schlüsselwortargument (Bytes) auf meine Variable anwenden bytes_string
und den empfohlenen Ansatz verwenden?
Die Art, wie ich es versucht habe, funktioniert nicht:
str(bbytes_string, 'utf-8')
string
python-3.x
type-conversion
bytestring
DjangoTango
quelle
quelle
str(bytes_string, 'utf-8', 'ignore')
Fehler können durch Übergabe des dritten Parameters ignoriert werden.bytes_string
, warum sollten Sie Fehler ignorieren?UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
für die folgenden Bytes Zeichenfolgeb'\xbf\x8cd\xba\x7f\xe0\xf0\xb8t\xfe.TaFJ\xad\x100\x07p\xa0\x1f90\xb7P\x8eP\x90\x06)0'
@TobySpeightRufen Sie
decode()
einebytes
Instanz auf, um den zu codierenden Text abzurufen.quelle
AKTUALISIERT:
Da Ihr Code möglicherweise nicht erkennbare Zeichen für die
'utf-8'
Codierung enthält, ist es besser, nur str ohne zusätzliche Parameter zu verwenden:Wenn Sie
'utf-8'
diesen spezifischen Bytes Parameter hinzufügen , sollte eine Fehlermeldung angezeigt werden.Wie PYTHON 3 Standard sagt,
text
wäre in utf-8 jetzt ohne Bedenken.quelle
b
in zuerst, dann habe ich Antwort aktualisiertIgnorieren Sie die Fehler, um diesen Kommentar in @ uname01s Beitrag und im OP zu adressieren:
Code
Einzelheiten
In den Dokumenten finden Sie weitere Beispiele, die denselben
errors
Parameter verwenden:quelle