Wenn Sie eine Unicode-Zeichenfolge haben und diese in eine Datei oder ein anderes serialisiertes Formular schreiben möchten, müssen Sie sie zuerst in eine bestimmte Darstellung codieren , die gespeichert werden kann. Es gibt mehrere gängige Unicode-Codierungen, z. B. UTF-16 (verwendet zwei Bytes für die meisten Unicode-Zeichen) oder UTF-8 (je nach Zeichen 1 bis 4 Bytes / Codepunkt) usw. Um diese Zeichenfolge in eine bestimmte Codierung zu konvertieren, müssen Sie Kann benutzen:
>>> s= u'£10'
>>> s.encode('utf8')
'\xc2\x9c10'
>>> s.encode('utf16')
'\xff\xfe\x9c\x001\x000\x00'
Diese rohe Folge von Bytes kann in eine Datei geschrieben werden. Beachten Sie jedoch, dass Sie beim Zurücklesen wissen müssen, in welcher Codierung es sich befindet, und es mit derselben Codierung decodieren müssen.
Wenn Sie in Dateien schreiben, können Sie diesen manuellen Codierungs- / Decodierungsprozess mithilfe des Codecs- Moduls entfernen . Verwenden Sie zum Öffnen einer Datei, die alle Unicode-Zeichenfolgen in UTF-8 codiert , Folgendes:
import codecs
f = codecs.open('path/to/file.txt','w','utf8')
f.write(my_unicode_string) # Stored on disk as UTF-8
Beachten Sie, dass alle anderen Benutzer dieser Dateien verstehen müssen, in welcher Codierung sich die Datei befindet, wenn sie sie lesen möchten. Wenn Sie der einzige sind, der das Lesen / Schreiben ausführt, ist dies kein Problem. Andernfalls stellen Sie sicher, dass Sie in einer Form schreiben, die für alle anderen Benutzer der Dateien verständlich ist.
In Python 3 ist diese Form des Dateizugriffs die Standardeinstellung. Die integrierte open
Funktion verwendet einen Codierungsparameter und übersetzt immer in / von Unicode-Zeichenfolgen (das Standardzeichenfolgenobjekt in Python 3) für Dateien, die im Textmodus geöffnet werden.
print type(unicode_string), repr(unicode_string)
Python 3.x:print type(unicode_string), ascii(unicode_string)
Bearbeiten Sie dann Ihre Frage und kopieren Sie die Ergebnisse der obigen Druckanweisung. Geben Sie die Ergebnisse NICHT erneut ein. Suchen Sie auch oben in Ihrem HTML-Code nach, ob Sie Folgendes finden können: <meta http-equiv = "Inhaltstyp" content = "text / html; charset = iso-8859