python为什么中文显示的都是16进制的?

 我来答
百度网友87b2a52
2013-03-27 · 知道合伙人软件行家
百度网友87b2a52
知道合伙人软件行家
采纳数:523 获赞数:3490
毕业于南京大学,硕士学位。10年软件研发经验。现任信息系统架构师。

向TA提问 私信TA
展开全部
先试试
print each.decode('utf-8').encode('gb18030')

还不行的话,那就需要确认几个东西:
1, 你的代码里的字符是什么编码的, 比如你的secureCRT是utf8的,那么它就是utf8的。
2,export LANG=en_US.utf8,这一步是为了让linux正确的解析字节流(编码)以便对应到字符。
3,前两步之后,通过secureCRT看你输入的汉字是不会乱码的。
4,源代码的coding改成utf8,这是为了让python解析源代码时知道如何将字面常量字符串转到unicode内码。
5,如果你是py2.x,那么encode到utf8再输出。
6,如果你是Py3.x,那么直接print即可,python3.x会将unicode内码转到LANG编码。
百度网友17c8cc6
推荐于2017-05-21 · 超过44用户采纳过TA的回答
知道小有建树答主
回答量:58
采纳率:0%
帮助的人:67.4万
展开全部
你先看是在什么情况下显示16进制的,python不能直接将中文数组,中文列表一次性print的,一个一个print就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdwisyou7d
2013-03-27 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1083万
展开全部
假设s='中国'
那么print repr(s)得到的就是16进制字符串

而print s得到的是汉字

>>> s='中国'
>>> s
'\xe4\xb8\xad\xe5\x9b\xbd'
>>> print s
中国
>>> print repr(s)
'\xe4\xb8\xad\xe5\x9b\xbd'
>>>
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-29
展开全部
不是16进制,你是想说是unicode编码吧?>>> '你好'
'\xc4\xe3\xba\xc3'
>>> print '你好'
你好
>>>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式