2017-05-31 17 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はい、あなたの助言に基づいて答えを更新しました。 –

関連する問題