python unicode编码不显示可读文本

时间:2017-01-20 05:31:18

标签: python python-2.7 unicode

我有一个如下所示的列表:

myList = [u'\u0442\u043e\u0432\u0447', u'\u0442\u043e\u0432\u0447']

然后我这样做了:

for x in myList:
    print (x.encode('utf-8'))

所以我得到了:

'\xd1\x82\xd0\xbe\xd0\xb2\xd1\x87'
'\xd1\x82\xd0\xbe\xd0\xb2\xd1\x87'

我尝试了很多编码,解码标准。他们都没有帮助我。我怎样才能获得可读文本?

2 个答案:

答案 0 :(得分:0)

您的字符串是一系列代码点。每个代码点都是固定符号。要将其转换为字节,请使用编码并为其提供编码(通常为utf-8)。要从字节中获取符号(即磁盘上的文件),您需要解码(您应该事先知道编码)。

使用print ' '.join([str(i) for i in myList])

答案 1 :(得分:0)

你的字符串已经是unicode(它们以u'开头,\u....部分是unicode代码点,python为你转换为unicode对象),所以你不需要对它们进行编码(你只编码str)。

你只需要打印它们:

myList = [u'\u0442\u043e\u0432\u0447', u'\u0442\u043e\u0432\u0447']
for x in myList:
    print(x)

如果您在打印export LC_ALL=utf-8

时遇到问题,则可能需要使用x指定终端的字符集