2016-03-24 8 views
0

Ich habe eine Datei input.txt, die nur eine Zeile enthält: "obra 鑾 n". Wie ich dieses Kanji bekommen habe, ist a separate problem, das ich hier nicht ansprechen möchte, hier möchte ich einfach den Inhalt dieser Datei auf der Kommandozeile mit Python 3 unter Windows drucken (ich habe dieses Problem nicht unter Linux).beheben UnicodeEncodeError: 'Charmap' Codec kann nicht Zeichen in Python3

Ich habe dieses Thema seit einer Stunde gegooglet und habe meinen Verstand verloren, ohne die Lösung herauszufinden. Hier ist, wie weit ich habe:

# -*- coding: utf-8 -*- 
f = open("input.txt", encoding='utf8') 
s = f.read() 

print(type(s)) 
#print(s) #error 
b = s.encode('utf-8') 
print(type(b)) 
print(b) 
#print(b.decode("utf-8")) #error 
#print(b.decode('unicode_escape')) #error 

Der Ausgang dieses Codes ist:

<class 'str'> 
<class 'bytes'> 
b'obra\xe9\x91\xben\n' 

Fehler beim ersten beiden Zeilen kommentiert ist identisch:

UnicodeEncodeError: 'charmap' codec can't encode character '\u947e' in position 4: character maps to <undefined> 

Fehler auf der letzten Kommentarzeile ist:

UnicodeEncodeError: 'charmap' codec can't encode character in position 5-6: character maps to <undefined> 

Ich habe jetzt unsere Ideen, was zu tun ist. Haben Sie Ideen, wie Sie den Inhalt dieser Datei in der Windows-Befehlszeile mit Python 3 drucken können?

Danke.

Antwort

1

Die Windows-Befehlszeile hat normalerweise keine Schriftart, die asiatische Zeichen unterstützt, es sei denn, Ihr Systemgebietsschema ist ein asiatisches Gebietsschema. Ihr Systemgebietsschema kann in Systemsteuerung, Region und Sprache, Registerkarte Verwaltung (Windows 7) geändert werden.

Andernfalls können Sie versuchen, win-unicode-console, aber Sie müssen immer noch eine feste Breite Konsole Schrift finden, die asiatische Zeichen unterstützt.

Installing console fonts

+0

Kann dies durch die Installation eine andere Windows-Konsole oder wird jede Konsole dieses Problem haben, wenn Schriftarten installiert sind nicht festgelegt werden? – dijxtra

+1

@dijxtra, Sie können eine Python-IDE verwenden. Die Konsole ist nur auf eine kleine Anzahl fester Schriften beschränkt. IDLE kommt mit Python, aber es gibt viele andere. –

Verwandte Themen