Saya telah membaca di lampiran email XML dengan
bytes_string=part.get_payload(decode=False)
Payload masuk sebagai string byte, seperti yang disarankan oleh nama variabel saya.
Saya mencoba menggunakan pendekatan Python 3 yang direkomendasikan untuk mengubah string ini menjadi string yang dapat digunakan yang dapat saya manipulasi.
Contohnya menunjukkan:
str(b'abc','utf-8')
Bagaimana saya bisa menerapkan b
argumen kata kunci (byte) ke variabel saya bytes_string
dan menggunakan pendekatan yang disarankan?
Cara saya mencoba tidak berhasil:
str(bbytes_string, 'utf-8')
string
python-3.x
type-conversion
bytestring
DjangoTango
sumber
sumber
str(bytes_string, 'utf-8', 'ignore')
Kesalahan dapat diabaikan dengan meneruskan parameter ketiga.bytes_string
, mengapa Anda ingin mengabaikan kesalahan?UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
untuk string byte berikutb'\xbf\x8cd\xba\x7f\xe0\xf0\xb8t\xfe.TaFJ\xad\x100\x07p\xa0\x1f90\xb7P\x8eP\x90\x06)0'
@TobySpeightPanggil
decode()
sebuahbytes
instance untuk mendapatkan teks yang dikodekannya.sumber
DIPERBARUI:
Karena kode Anda mungkin memiliki karakter yang tidak dapat dikenali untuk
'utf-8'
dienkode, lebih baik menggunakan hanya str tanpa parameter tambahan:jika Anda menambahkan
'utf-8'
parameter, ke byte spesifik ini, Anda akan menerima kesalahan.Seperti yang dikatakan standar PYTHON 3,
text
akan berada di utf-8 sekarang tanpa masalah.sumber
b
in yang pertama, maka saya memperbarui jawabanUntuk mengatasi komentar ini di posting @ uname01 dan OP, abaikan kesalahan:
Kode
Detail
Dari dokumen , berikut lebih banyak contoh yang menggunakan
errors
parameter yang sama :sumber