Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa saya menerima \'UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff in position 0: invalid start byte\' apabila menyahkod fail dalam Python?

Mengapa saya menerima \'UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff in position 0: invalid start byte\' apabila menyahkod fail dalam Python?

Patricia Arquette
Lepaskan: 2024-11-04 13:13:29
asal
425 orang telah melayarinya

Why am I receiving a

Menyelesaikan masalah UnicodeDecodeError dalam Python's UTF-8 Decoding

Menghadapi ralat "UnicodeDecodeError: 'utf-8' codec tidak dapat menyahkod bait 0xff dalam kedudukan 0: bait permulaan tidak sah" menandakan bahawa Python cuba menyahkod jujukan bait menggunakan UTF-8 tetapi menemui bait permulaan yang tidak sah. Ini berlaku apabila tatasusunan bait, diandaikan sebagai rentetan berkod UTF-8, mengandungi aksara di luar pengekodan UTF-8規範。

Punca Ralat

Dalam contoh yang disediakan, membuka fail menggunakan open(path).read() mencetuskan percubaan penyahkodan. Memandangkan fail mengandungi bait yang tidak mematuhi UTF-8, proses penyahkodan gagal, mengakibatkan ralat.

Penyelesaian

Untuk menyelesaikan isu ini, adalah penting untuk mengendalikan fail sebagai binari dan bukannya fail teks. Ini menghalang Python daripada cuba menyahkod bait sebagai rentetan UTF-8.

Dengan mengubah suai kod untuk membuka fail dengan mod 'rb', kami memaksa Python membaca fail sebagai binari:

<code class="python">with open(path, 'rb') as f:
    contents = f.read()</code>
Salin selepas log masuk

Menentukan 'b' dalam hujah mod mengarahkan Python untuk merawat fail sebagai strim binari, memastikan kandungan kekal sebagai objek bait, tanpa sebarang percubaan penyahkodan.

Atas ialah kandungan terperinci Mengapa saya menerima \'UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff in position 0: invalid start byte\' apabila menyahkod fail 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