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,为啥它们显示的二进制文件名不一样?

为啥电脑窗口出现的都是问号?

为啥我用wireshark抓包结果全是乱码

为啥要对url进行encode

Java web为啥输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了