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>`
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")
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!