python中显示中文乱码如何解决

这篇文章主要介绍python中显示中文乱码如何解决,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联是少有的做网站、成都网站制作、营销型企业网站、成都微信小程序、手机APP,开发、制作、设计、买友情链接、推广优化一站式服务网络公司,从2013年成立,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评

python中显示中文乱码,主要是编码问题。

先明确几个概念:

字节流:以utf8/gbk等编码编码的字节流。

unicode对象:python代码中,a=u'中国', 或者a='中国'.decode()的结果。

terminal用于显示字符的编码:将一个用utf8/gbk编码的字节流通过terminal指定的编码,去查找对应的字符显示出来。

locale:linux下,Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。一个locale的书写

格式为: 语言[_地域[.字符集]]. 所以说呢,locale总是和一定的字符集相联系的。比如:zh_CN.GB2312

编码转换原则:unicode是"中介",任何编码之间转换都需要先decode()到unicode。

针对python,先把结论放在前面,三点:

#coding:utf-8 #.py文件是什么编码就需要告诉python用什么编码去读取这个.py文件。

sys.stdout.encoding,默认就是locale的编码,print会用sys.stdout.encoding去encode()成字节流,交给terminal显示。所以locale需要与terminal一致,才能正确print打印出中文。

sys.setdefaultencoding(‘utf8’),用于指定str.encode() str.decode()的默认编码,默认是ascii。

对编码字符串a,代码中可以直接写a.encode(“gbk”),但事实上内部自动先通过defaultencoding 去decode成unicode之后再encode()的。

str(xxx)应该也是用这个去编码的。

'ascii' codec can't encode characters in position 7-8: ordinal not in range(128)print的时候出现这个错误一般可以使用这个方案去处理。

为了避免代码中到处都要去encode(“xxx”),还有可能不同的地方写得不一样带来不一致的情况,推荐使用这个:

import sys   
reload(sys)   
sys.setdefaultencoding('utf8')

以上是python中显示中文乱码如何解决的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!

文章名称:python中显示中文乱码如何解决
标题链接:https://www.cdcxhl.com/article44/jijhee.html

成都网站建设公司_创新互联,为您提供网站收录做网站电子商务品牌网站建设微信小程序域名注册

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设