当前位置: 首页 > 问答 > Python编程 > 问答详情

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

09月27日 13:18305人阅读
刘老师 Python编程

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自学网。

来自标签:

职业技能申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

问答来自

刘老师 Python编程
好评率85% 浏览305

相关问题

python中append()和extend()有什么区别?
刘老师 Python编程
Python中apscheduler执行如何使用?
魏老师 Python编程
在python中如何求阶乘和斐波那契数列?
梦老师 Python编程
课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部