Python Unicode Handling dan Windows Console
Apabila cuba mencetak rentetan Unicode dalam konsol Windows, anda mungkin menghadapi UnicodeEncodeError yang dikaitkan dengan ketidakupayaan codec 'charmap' untuk mengekod aksara tertentu. Ralat ini berpunca daripada kapasiti terhad konsol Windows untuk mengendalikan semua aksara Unicode.
Penyelesaian:
-
Python 3.6 dan Kemudian:
Python 3.6 memperkenalkan PEP 528, yang menukar pengekodan konsol Windows lalai kepada UTF-8, menyokong semua aksara Unicode. Mencetak rentetan Unicode kini seharusnya berfungsi dengan sempurna.
-
Pakej Win-unicode-console:
Pasang pakej "win-unicode-console", yang secara telus memanggil API WriteConsoleW(). Ini membolehkan anda mencetak aksara Unicode tanpa mengubah suai skrip anda.
-
Pembolehubah Persekitaran PYTHONIOENCODING:
Tetapkan pembolehubah persekitaran PYTHONIOENCODING kepada ":replace" untuk menggantikan aksara yang tidak boleh dikodkan secara automatik dengan pemegang tempat ( cth., "?").
Pertimbangan Lain:
-
Fon Konsol:
Pastikan fon konsol Windows menyokong aksara Unicode yang anda ingin cetak.
-
Unicode API:
Win-unicode-console secara dalaman menggunakan Unicode API yang sama seperti WriteConsoleW() untuk mengendalikan aksara Unicode.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Rentetan Unicode dengan Benar dalam Konsol Windows dengan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!