Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memaparkan Aksara Unikod dengan Betul dalam Konsol Windows?

Bagaimanakah Saya Boleh Memaparkan Aksara Unikod dengan Betul dalam Konsol Windows?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 18:25:14700semak imbas

How Can I Properly Display Unicode Characters in the Windows Console?

Perwakilan Unikod dalam Konsol Windows

Apabila cuba mencetak rentetan dalam konsol Windows, pembangun mungkin menghadapi ralat "UnicodeEncodeError: 'charmap ' codec tidak boleh mengekod aksara." Isu ini timbul daripada ketidakupayaan konsol untuk mengendalikan aksara Unicode tertentu.

Penyelesaian:

Python 3.6 dan Kemudian:

  • Python 3.6 melaksanakan PEP 528, menukar konsol lalai pengekodan kepada UTF-8. Ini membolehkan aksara Unicode dipaparkan terus tanpa memerlukan penyelesaian.

Python 3.5 dan Terdahulu:

  • Win-Unicode- Konsol: Pasang pakej win-unicode-console, yang membolehkan sokongan Unicode dalam konsol.
  • WriteConsoleW() API: Gunakan API WriteConsoleW() untuk mencetak rentetan Unikod terus ke konsol.
  • PYTHONIOENCODING: Tetapkan PYTHONIOENCODING pembolehubah persekitaran kepada ":replace" untuk menggantikan aksara yang tidak boleh dikodkan dengan "?" watak.

Menetapkan PYTHONIOENCODING:

set PYTHONIOENCODING=:replace

Menggantikan Aksara:

Jika menggantikan aksara yang tidak boleh dikodkan dengan " ?" adalah mencukupi, anda boleh menggunakan yang berikut:

print(u'[\N{EURO SIGN}]')  # Replaces the Euro sign with "?"

Nota:

Dalam Python 3.6 , PYTHONIOENCODING diabaikan untuk penimbal konsol interaktif melainkan PYTHONLEGACYWINDOWSIOENCODING ditetapkan kepada bukan -rentetan kosong.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaparkan Aksara Unikod dengan Betul dalam Konsol Windows?. 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