在python中print "unicode中文所组成list"的list, 仅显示unicode编码

问题描述

创建了一个list:
test=[[u'测试',u'学习'],[u'提问',u'回答']]
然后用print打印的时候显示的是
[[u'u6d4bu8bd5', u'u5b66u4e60'], [u'u63d0u95ee', u'u56deu7b54']]

问题出现的环境背景及自己尝试过哪些方法

在网上找了一些方法比如“ ”.join(XXX)、encode...decode之类的,都没有成功

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
test=[[u'测试',u'学习'],[u'提问',u'回答']]
print test

你期待的结果是什么?实际看到的错误信息又是什么?

期待看到[['测试','学习'],['提问','回答']]
然而实际上输出的是[[u'u6d4bu8bd5', u'u5b66u4e60'], [u'u63d0u95ee', u'u56deu7b54']]

阅读 4.8k
3 个回答
>>> test=[[u'测试',u'学习'],[u'提问',u'回答']]           
>>> print(test)
[['测试', '学习'], ['提问', '回答']]
>>> 

Python3 根本不用任何操作。哈哈

python2 的编码问题确实很令人头疼.
对于你遇到的情况, 首先应该把 unicode 类型转换成 utf-8 格式进行展示.

# coding: utf-8

test=[[u'测试',u'学习'],[u'提问',u'回答']]
# 换成 utf-8 的字节码
tester = [[y.encode('utf-8') for y in x] for x in test]

# print 展示
print(repr(tester).decode('string-escape'))

使用 python3 吧, 这些类似的编码问题基本不会出现的.

import json
test=[[u'测试',u'学习'],[u'提问',u'回答']]
print json.dumps(test,ensure_ascii=False)

不好用你打我.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题