品易云推流 关闭
文章详情页
文章 > Python常见问题 > python中输出结果乱码怎么解决?

python中输出结果乱码怎么解决?

头像

yang

2020-05-27 10:39:586299浏览 · 0收藏 · 0评论

python输出中文乱码的解决方法:

1、在源码文件第一行添加 #-*-coding:utf-8-*- 或  #encoding=utf-8 或  #encoding=UTF-8

注意:一定要在第一行!

在python2中第一行不加#-*-coding:utf-8-*-会输出下面的错误:

File "ex1.py", line 16

SyntaxError: Non-ASCII character '\xe8' in file ex1.py on line 16, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

2、在字符串前加 ‘ u ’ 

3、若上述2种方式仍然不能保证能输出正常输出中文,就需要做编码解码设置

encode: 编码(真实字符与二进制串的对应关系,真实字符→二进制串)

decode: 解码(二进制串与真实字符的对应关系,二进制串→真实字符)

下面介绍几种常用的编码方式:

UTF-8:Unicode Transformation Format-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。

UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。

GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大。

GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:

GBK、GB2312<===>Unicode<===>UTF8。这一点非常关键,就是两种不同的编码方式之间的互相转换,要通过Unicode编码作为桥梁。

更多Python知识请关注Python自学网

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图