一个小小的中文编码问题

2015-06-13 09:45:27 +08:00
 redhatping

如,

#coding:utf-8
a = ['中国','美国']
print a
print a[1]

结果是
['\xe4\xb8\xad\xe5\x9b\xbd', '\xe7\xbe\x8e\xe5\x9b\xbd']
美国


如何print a , 显示 ['中国','美国']


为什么a[1],可以是中文,a 就是编码了呢?

2546 次点击
所在节点    Python
7 条回复
yahoo21cn
2015-06-13 10:08:36 +08:00
print str(a).decode('string_escape')
blueset
2015-06-13 10:21:30 +08:00
用 Python3 测试了一下

>>> a = ['中国','美国']
>>> print (a)
['中国', '美国']
redhatping
2015-06-13 10:22:15 +08:00
@blueset python2呢
redhatping
2015-06-13 10:23:04 +08:00
@yahoo21cn 再请问一下,为什么是这样呢,a[1],是中文呢?
yahoo21cn
2015-06-13 10:39:59 +08:00
因为默认在list打印的是utf-8编码,你如果不想打印编码,而是显示字型,需要string_escape解码一下
yetone
2015-06-13 10:43:45 +08:00
试一下 from __future__ import unicode_literals
redhatping
2015-06-13 10:58:48 +08:00
@yahoo21cn 谢谢 :)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198172

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX