python为什么中文显示的都是16进制的?
2013-03-27 · 知道合伙人软件行家
关注
展开全部
先试试
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编码。
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编码。
展开全部
你先看是在什么情况下显示16进制的,python不能直接将中文数组,中文列表一次性print的,一个一个print就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设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'
>>>
那么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 '你好'
你好
>>>
'\xc4\xe3\xba\xc3'
>>> print '你好'
你好
>>>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询