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