2017-05-31 64 views
0

我要打印'\xd6\xd0\xb9\xfa\xba\xda\xc1\xfa\xbd\xad'這是一個漢字。Python:如何打印此特殊字符串?

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

但它引發了這個錯誤:UnicodeDecodeError: 'utf8' codec can't decode byte 0xd6 in position 0: invalid continuation byte。我也試過deocde('latin-1')。但結果不是漢字。

+0

你從哪裏得到這些字節? – Ryan

+0

@Ryan它形成一個csv文件,該列中的所有值都是中文字符,如excel中所示。 –

+0

這些字節的正確字符是什麼?你能把這些問題包括在內嗎? – Ryan

回答

3

嘗試:

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

輸出:

中國黑龍江 

更新:馬克的建議,使用l[0].decode('gb2312')就足夠了。

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

如果終端配置正確,'print(l [0] .decode('gb2312'))'應該足夠了。打印Unicode使用終端的默認編碼。 –

+0

@MarkTolonen是的,根據你的建議更新了答案。 –