♟
ist ein Unicode-Zeichen. In Python 2 enthält str
ASCII-Zeichenfolgen oder Binärdaten, während unicode
Unicode-Zeichenfolgen enthält. Wenn Sie "♟"
tun, erhalten Sie eine binär codierte Version der Unicode-Zeichenfolge. Was diese Kodierung ist, hängt von dem Editor/der Konsole ab, in der Sie sie eingegeben haben. Es ist üblich (und ich denke, dass es vorzuziehen ist), UTF-8 zu verwenden, um Zeichenfolgen zu kodieren, aber Sie können feststellen, dass Windows-Editoren Little-Endian-UTF-16-Zeichenfolgen bevorzugen.
In beiden Fällen möchten Sie Ihre Strings so viel wie möglich als Unicode schreiben. Sie können einige Mix-and-Matching zwischen str
und unicode
tun, aber stellen Sie sicher, dass alles außerhalb der ASCII-Code-Set von Anfang an Unicode ist.
Python kann einen Kodierungshinweis an der Vorderseite der Datei nehmen. Angenommen, Sie verwenden einen UTF-8-Editor, können Sie tun
[email protected]/usr/bin/env python
# -*- coding: utf-8 -*-
chess_piece = u"♟"
print u"g".replace(u"g", chess_piece)
Warum würden Sie utf-8 in einen ASCII-Konverter? –
Ich wollte nur sehen, was es wirklich ausgegeben hat. Vielleicht etwas Nützliches, aber ich denke nicht. – DSchana
Es ist kein ASCII-Zeichen, sondern ein UTF-8-Zeichen. – Natecat