Python的中文乱码是个很烦人的问题,虽然网上也有非常多的解决方案,但是由于不同的项目,在细节上也有很多不同的地方,导致在实际工作中解决起来总是不尽如人意,本文也将提供2种解决方案,希望能给大家提供一些思路,帮助大家解决乱码问题。首先介绍一下我使用的环境:Windows 7 + Python 2.7.17 + PyCharm Community Edition 2016.1.5

方案一:使用decode函数




python引入中文乱码 python中文乱码解决_解决方案


在这个实例中,开头的2行代码,指定文件的编码是UTF-8的,这一步是必须的。最后一行是先用str函数将list转换为string,再使用decode函数进行解码。而参数string_escape的含义是指对二进制的字节流,一个字节一个字节的转义,与之相对应的还是一个unicode-escape,他是两个字节两个字节的转义。下面是程序执行效果。


python引入中文乱码 python中文乱码解决_python引入中文乱码_02


我们执行一下上面的程序,从中可以看到控制台的第3行和第4行,都正确的打印出了汉字结果,即"大家好"等等字样。第5行表示,在没有使用decode之前,list显示的还是乱码,但经过decode之后,第6行就可以正确的打印出汉字来。

在上面的实例中,我们使用decode来达到我们的目的。但是每次都要增加一些函数调用和类型转换,导致整个源代码变得臃肿又难看。接下来,我们再提供一个更简捷的方案。

方案二,使用uniout

还是先上源代码。源代码开头仍然是指定文件编码是UTF-8,这一步是必须的。


python引入中文乱码 python中文乱码解决_中文乱码_03


接下来,直接加入一行import uniout。然后我们就不再需要在源代码再进行任何特殊处理,直接print就可以在控制台上打印出正确的汉字了。


python引入中文乱码 python中文乱码解决_python引入中文乱码_04


如果你的环境里没有uniout,并且机器是联网的,那么可以直接用pip来安装。


python引入中文乱码 python中文乱码解决_python引入中文乱码_05


以上就是本篇文章关于中文乱码的2种解决方案。希望能够对大家有所帮助。