原文地址:https://www.zhihu.com/question/20413029
Python如何输出包含在对象中的中文字符?
print [u'\u7ef3\u5b50', u'\u5e26\u5b50'][0] 可以正常输出其中一部分中文
但是有没有办法直接输出 ['绳子','带子']
那样能极大的方便调试。
{PS :混蛋Stackoverflow说我问题不合格。。}
PS:抱歉让大家误以为问的是"如何输出中文|如何在源码中使用中文"。。问题问的是如何使对象的repr行为输出直接为中文。而不是[u'\u5e26\u5b50']这种不直观的形式。
知乎用户 A European Swallow.
def zhprint(obj):
import re
print re.sub(r"\\u([a-f0-9]{4})", lambda mg: unichr(int(mg.group(1), 16)), obj.__repr__())
![]()
yeah it's a hack but it works (for most cases)...
柳东原 Python & Django user.
(这几天恰好碰到类似的问题……)
一个很取巧的方法是转成 JSON 或者 YAML 输出。
import json, yaml
print json.dumps(['绳子','带子'], ensure_ascii=False, indent=2)
print yaml.dump(['绳子','带子'], allow_unicode=True)
![]()
知乎用户
新学的话还是用python3吧~
![]()
李航 维护一个有四万关注者的知乎Top10收藏夹…
json.dumps(something).decode("unicode-escape")
李遥 A Programmer
python3 双引号里的是unicode字符串,只要确保源代码文件是用unicode保存的就可以在双引号里直接用中文
python2 双引号里的是ASCII编码的字符串,unicode字符串用u"中文"来表示
str(xx).decode("string_escape")
我用的python3.4 print(r.text) 却输出了这样的东西
![]()
求指导,怎样输出中文
最简单的方法:
import sys
try:
reload(sys)
sys.setdefaultencoding('utf-8')
except:
pass
print sys.getdefaultencoding()
可以看到系统编码变成utf-8,中文也可以显示了。
周世伟 学生,现读于华中科技大学
如果想一次性输出多个中文,而不出现Unicode字符,我只能想到循环
s=[u'绳子',u'带子']
for each in s:
print each,