UnicodeDecodeError: codec 'charmap' tidak boleh menyahkod bait X dalam kedudukan Y
Apabila cuba membaca fail teks dalam Python 3, anda mungkin menghadapi perkara berikut ralat:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to `<undefined>`
Penjelasan:
Ralat ini berlaku apabila codec 'charmap', yang bertanggungjawab untuk menukar bait kepada aksara, tidak dapat menyahkod sesuatu bait dalam fail teks. Ini biasanya disebabkan oleh fail tidak dikodkan dalam pengekodan yang dijangkakan.
Ralat Penyahkodan:
Dalam ralat khusus ini, bait 0x90 menyebabkan isu ini. Bait ini tidak dipetakan kepada mana-mana aksara dalam pengekodan 'charmap', yang biasa digunakan untuk sistem Windows.
Penyelesaian:
Untuk menyelesaikan isu ini, anda perlu untuk menentukan pengekodan yang betul bagi fail teks. Satu cara untuk melakukan ini ialah dengan memeriksa fail menggunakan editor teks dan memerhati aksara yang tidak dinyahkodkan.
Setelah anda menentukan pengekodan yang betul, anda boleh menentukannya apabila membuka fail dalam Python:
file = open(filename, encoding="utf8")
Dalam contoh ini, "utf8" ialah pengekodan yang digunakan untuk fail teks. Pastikan anda menggantikannya dengan pengekodan yang betul.
Dengan menggunakan pengekodan yang betul, Python akan dapat menyahkod bait dalam fail teks tanpa menghadapi sebarang ralat.
Atas ialah kandungan terperinci Bagaimanakah Saya Membetulkan Python 3 `UnicodeDecodeError: codec 'charmap' Apabila Membaca Fail Teks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!