Ralat Penyahkodan: Aksara Dipetakan kepada Tidak Ditakrifkan
Semasa cuba membaca fail teks, program Python 3 menemui ralat:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to `<undefined>`
Penjelasan:
Ralat ini menandakan codec 'charmap' tidak boleh menyahkod bait tertentu dalam fail teks. Codec 'charmap' digunakan untuk pengekodan aksara yang memetakan bait kepada aksara secara langsung.
Penyelesaian:
Untuk menyelesaikan ralat ini, adalah perlu untuk mengenal pasti pengekodan yang betul daripada fail teks dan nyatakannya apabila membuka fail. Oleh kerana bait 0x90 tidak mempunyai pemetaan yang sah dalam pengekodan CP1252, fail mungkin menggunakan pengekodan yang berbeza, seperti UTF-8 atau Latin-1.
Untuk membuka fail menggunakan pengekodan yang betul, tambahkan hujah pengekodan:
file = open(filename, encoding="utf-8")
Untuk Latin-1 pengekodan:
file = open(filename, encoding="latin-1")
Nota:
Rujuk dokumentasi tentang "Cara menentukan pengekodan teks" untuk memastikan pengekodan yang betul bagi fail teks.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Python 'UnicodeDecodeError: codec 'charmap' tidak boleh menyahkod bait...'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!