Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Membetulkan 'UnicodeDecodeError' Apabila Membaca Fail Teks dalam Python?

Bagaimana untuk Membetulkan 'UnicodeDecodeError' Apabila Membaca Fail Teks dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-12-13 00:18:22
asal
468 orang telah melayarinya

How to Fix a 'UnicodeDecodeError' When Reading Text Files in Python?

Mengatasi 'UnicodeDecodeError' dan Penukaran Pengekodan

Dalam percubaan untuk memanipulasi data yang disimpan dalam fail teks, anda mengalami ralat berikut:

Traceback (most recent call last):  
File "SCRIPT LOCATION", line NUMBER, in <module>  
    text = file.read()
File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode  
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to `<undefined>`  
Salin selepas log masuk

Ralat ini berpunca daripada ketidakpadanan antara pengekodan yang diandaikan (CP1252) dan pengekodan sebenar daripada fail tersebut. Untuk menyelesaikan isu ini, kami perlu mengenal pasti pengekodan yang betul dan menyatakannya secara eksplisit semasa membuka fail.

Mengenal pasti Pengekodan Fail

Seperti yang dinyatakan dalam soalan, menentukan pengekodan fail adalah penting. Malangnya, ini perlu dilakukan secara manual. Pengekodan biasa termasuk Latin-1 dan UTF-8. Walau bagaimanapun, memandangkan 0x90 bukan aksara yang sah dalam Latin-1, UTF-8 ialah calon yang kuat.

Menentukan Pengekodan

Setelah anda menentukan pengekodan , anda boleh menentukannya apabila membuka fail menggunakan parameter pengekodan:

file = open(filename, encoding="utf8")
Salin selepas log masuk

Dengan menyediakan pengekodan yang betul, Python akan dapat menyahkod fail teks dengan betul dan membenarkan anda memanipulasi kandungannya tanpa menghadapi pengecualian 'UnicodeDecodeError'.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan 'UnicodeDecodeError' Apabila Membaca Fail Teks dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan