Wenn Sie die Datei lesen, ist die Zeichenfolge, die Sie einlesen, eine Bytefolge. Die for-Schleife iteriert jeweils um ein Byte. Dies führt zu Problemen mit einer UTF-8-codierten Zeichenfolge, bei der Nicht-ASCII-Zeichen durch mehrere Bytes dargestellt werden. Wenn Sie mit Unicode-Objekten arbeiten möchten, bei denen die Zeichen die grundlegenden Elemente sind, sollten Sie
verwenden %Vor% Wenn sys.stdout
nicht bereits über den entsprechenden Codierungssatz verfügt, müssen Sie ihn möglicherweise umbrechen:
Sieh dir das an:
%Vor%Es gibt Folgendes zurück:
Stäckövérfløw
'St \ xc3 \ xa4ck \ xc3 \ xb6v \ xc3 \ xa9rfl \ xc3 \ xb8w'
S t? ? c k? ? v? ? r f l? ? w
Die Sache ist, dass die Datei nur als eine Bytefolge gelesen wird. Beim Iterieren werden die Multibyte-Zeichen in unsinnige Byte-Werte aufgeteilt.