python为啥中文显示的都是16进制的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python为啥中文显示的都是16进制的?相关的知识,希望对你有一定的参考价值。
先试试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编码。 参考技术A 你先看是在什么情况下显示16进制的,python不能直接将中文数组,中文列表一次性print的,一个一个print就可以了 参考技术B 假设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'
>>> 参考技术C 不是16进制,你是想说是unicode编码吧?>>> '你好'
'\xc4\xe3\xba\xc3'
>>> print '你好'
你好
>>>
以上是关于python为啥中文显示的都是16进制的?的主要内容,如果未能解决你的问题,请参考以下文章
在 dos 窗口中分别输入show master status 和show binlog events\G,为啥它们显示的二进制文件名不一样?