Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengendalikan 'SyntaxError: Non-ASCII...' dan 'SyntaxError: Non-UTF-8...' Ralat dalam Python?

Bagaimana untuk Mengendalikan 'SyntaxError: Non-ASCII...' dan 'SyntaxError: Non-UTF-8...' Ralat dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-12-12 22:32:18405semak imbas

How to Handle

Aksara Bukan ASCII dalam Skrip Python: "SyntaxError: Non-ASCII..." dan "SyntaxError: Non-UTF-8..."

Semasa bekerja dengan Python 2 atau 3, anda mungkin menghadapi ralat seperti "Watak bukan ASCII..." atau "Kod bukan UTF-8..." apabila menggunakan teks bukan ASCII dalam literal rentetan. Ralat ini berpunca daripada ketidakpadanan antara pengekodan kod sumber anda dan kehadiran aksara bukan standard.

Untuk menangani isu ini dalam Python 2, di mana pengekodan ASCII biasanya diandaikan, anda harus menentukan pengekodan UTF-8 dengan menambah baris "# -- pengekodan: utf-8 --". Pengisytiharan ini memastikan Python mentafsir kod anda menggunakan pengekodan UTF-8, yang menyokong julat aksara yang lebih luas.

Dalam Python 3, pengekodan lalai ialah UTF-8, tetapi konflik boleh timbul jika skrip anda disimpan menggunakan pengekodan yang berbeza. Untuk membetulkannya, isytiharkan pengekodan secara eksplisit di bahagian atas fail.

Sebagai contoh, jika skrip anda mengandungi aksara Latin-1, anda harus mengisytiharkan pengekodan yang sesuai seperti berikut:

# -*- coding: latin-1 -*-

Sebagai alternatif, anda boleh menentukan pengekodan untuk rentetan individu terus dalam kod menggunakan kaedah encode():

london_bus = "£4.50".encode("latin-1")  # Set the encoding for this specific string

Dengan mengikuti garis panduan ini, anda boleh mengelakkan ralat pengekodan dan memastikan skrip Python anda mengendalikan aksara bukan ASCII dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan 'SyntaxError: Non-ASCII...' dan 'SyntaxError: Non-UTF-8...' Ralat dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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