2017-11-15 5 views
2

Ich versuche, ich zu konvertieren u '\ u30c9 \ u30e9 \ u30b4 \ u30f3' auf japanische Zeichen mit PythonPython Unicode japanische Zeichen konvertieren

hier ist mein Beispielcode

s = u'\u30c9\u30e9\u30b4\u30f3'.encode('utf-8') 
print str(s) 

bekam Dieser Fehler UnicodeEncodeError: 'Ascii' Codec kann Zeichen in Position 0-3 nicht codieren: Ordnungszahl nicht im Bereich (128)

+0

Welche Zeile hat den Fehler verursacht? Ich kann es nicht reproduzieren. – Neil

+0

'Traceback (letzter Anruf zuletzt): Datei "c: /api/test.py", Zeile 2, in Drucken (s.decode (' Utf-8 ')) Datei "C: \ Python27 \ lib \ Kodierungen \ cp437.py“, Zeile 12, in encode return codecs.charmap_encode (Eingang, Fehler, encoding_map) UnicodeEncodeError: 'charmap' Codec kann nicht in Zeichen 0-3 Position kodieren: Zeichentabellen zu ' –

+1

https://stackoverflow.com/questions/5419/python-unicode-and-the-windows-console –

Antwort

0

Sie erhalten s in Bytes. Verwenden Sie print(s.decode('utf-8')), um die japanischen Zeichen zu erhalten.

1

Dies hängt von Ihrem Betriebssystem und Ihrer Konfiguration ab, aber normalerweise drucken Sie nur die Unicode-Zeichenfolge. Wenn Ihr Betriebssystem, Standard-Terminal-Codierung und Schriftunterstützung Japanisch, müssen Sie nur:

>>> s = u'\u30c9\u30e9\u30b4\u30f3' 
>>> print s 
ドラゴン 

Unter Linux dies Ihr Endgerät erfordert (in der Regel) UTF-8 richtig konfiguriert werden.

Unter Windows benötigen Sie eine IDE, die UTF-8 unterstützt, aber wenn Sie die Windows-Konsole verwenden, erhalten Sie ein UnicodeEncodeError bekommen, wenn eine lokalisierte Version von Windows verwenden, die Japanisch unterstützt, oder changing the system locale auf Japanisch. Eine andere Problemumgehung besteht darin, win-unicode-console zu verwenden und eine japanische Konsole-Schriftart zu installieren.

Mein Beispiel oben verwendet die PythonWin IDE, die mit dem pywin32 Modul kommt, und funktioniert auch in der Python IDLE IDE, die mit einer Standard-Python-Installation geliefert wird.

Verwandte Themen