2017-05-31 9 views
0

Ich möchte '\xd6\xd0\xb9\xfa\xba\xda\xc1\xfa\xbd\xad' drucken, die ein chinesisches Schriftzeichen ist.Python: Wie drucke ich diese spezielle Zeichenfolge?

l = ['\xd6\xd0\xb9\xfa\xba\xda\xc1\xfa\xbd\xad'] 
a = [l[0].decode('utf-8')] 
print(a[0]) 

Aber es wirft diesen Fehler auf: UnicodeDecodeError: 'utf8' codec can't decode byte 0xd6 in position 0: invalid continuation byte. Ich habe auch versucht deocde('latin-1'). Aber das Ergebnis sind keine chinesischen Schriftzeichen.

+0

Woher haben Sie diese Bytes? – Ryan

+0

@Ryan es ist eine csv-Datei, alle Werte in dieser Spalte sind chinesische Zeichen wie in Excel gezeigt. –

+0

Was sind die korrekten Zeichen für diese Bytes? Könnten Sie bitte diejenigen in die Frage aufnehmen? – Ryan

Antwort

3

Versuchen mit:

l = ['\xd6\xd0\xb9\xfa\xba\xda\xc1\xfa\xbd\xad'] 
a = [l[0].decode('gb2312').encode('utf-8')] 
print(a[0]) 

Ausgang:

中国黑龙江 

Update: als Mark Rat, l[0].decode('gb2312') ausreichend sein wird verwenden.

l = ['\xd6\xd0\xb9\xfa\xba\xda\xc1\xfa\xbd\xad'] 
a = [l[0].decode('gb2312')] 
print(a[0]) 
+1

Wenn das Terminal richtig konfiguriert ist, sollte 'print (l [0] .decode ('gb2312'))' ausreichend sein. Beim Drucken von Unicode wird die Standardcodierung des Terminals verwendet. –

+0

@MarkTolonen ja, aktualisiert die Antwort auf Ihren Rat. –

Verwandte Themen