Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Unicode-Zeichen in der Windows-Konsole richtig anzeigen?

Wie kann ich Unicode-Zeichen in der Windows-Konsole richtig anzeigen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 18:25:14699Durchsuche

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

Unicode-Darstellung in der Windows-Konsole

Beim Versuch, Zeichenfolgen in der Windows-Konsole zu drucken, stoßen Entwickler möglicherweise auf den Fehler „UnicodeEncodeError: 'charmap „Codec kann Zeichen nicht kodieren.“ Dieses Problem entsteht dadurch, dass die Konsole bestimmte Unicode-Zeichen nicht verarbeiten kann.

Problemumgehungen:

Python 3.6 und höher:

  • Python 3.6 hat PEP 528 implementiert und die Standardkonsolenkodierung auf geändert UTF-8. Dadurch können Unicode-Zeichen direkt angezeigt werden, ohne dass Workarounds erforderlich sind.

Python 3.5 und früher:

  • Win-Unicode- Konsole: Installieren Sie das Paket win-unicode-console, das die Unicode-Unterstützung in der aktiviert Konsole.
  • WriteConsoleW() API: Verwenden Sie die WriteConsoleW() API, um Unicode-Zeichenfolgen direkt auf der Konsole zu drucken.
  • PYTHONIOENCODING: Legen Sie fest PYTHONIOENCODING-Umgebungsvariable auf „:replace“, um nicht kodierbare Zeichen durch „?“ zu ersetzen. Zeichen.

PYTHONIOENCODING einstellen:

set PYTHONIOENCODING=:replace

Zeichen ersetzen:

Wenn nicht kodierbare Zeichen durch „ersetzt werden“ ?" ausreicht, können Sie Folgendes verwenden:

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

Hinweis:

In Python 3.6 wird PYTHONIOENCODING für interaktive Konsolenpuffer ignoriert, es sei denn, PYTHONLEGACYWINDOWSIOENCODING ist auf „non“ gesetzt -leerer String.

Das obige ist der detaillierte Inhalt vonWie kann ich Unicode-Zeichen in der Windows-Konsole richtig anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn