linux下用print输出中文一直是乱码该如何解决

图片描述
图片描述

第一张图是输出的中文字符串前没加u的情况,第二张图加了也这样,我开头设置了# -*- coding: UTF-8 -*-也无济于事,这怎么回事啊?

阅读 13.6k
3 个回答

print dict和tuple都是unicode码显示,你要是print dict或tuple下的单个元素就是正常中文显示了。
另外字符串前面加u表示字符串是unicode码格式
你可以把你代码贴出来看下是怎么打印的。

# -*- coding: utf8 -*-
tuple_d=("你好","abc",123)
print tuple_d
print tuple_d[0]

dic={"name":"张三","age":14}
print dic
print dic["name"]

print "张三"
print u"\u5f00\u59cb"

依次输出
('xe4xbdxa0xe5xa5xbd', 'abc', 123)
你好
{'age': 14, 'name': 'xe5xbcxa0xe4xb8x89'}
张三
张三
开始

看样子你print的是一个tuple

试试直接print 字符串,应该可以显示你想要的

试试这样看

import json
print json.dumps("你需要打印的字符串或字典或元组或数组",encoding='utf-8',ensure_ascii=False)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题