python默认编码
python 2.x默认的字符编码是ASCII,默认的文件编码也是ASCII。
python 3.x默认的字符编码是unicode,默认的文件编码是utf-8。
中文乱码问题
无论以什么编码在内存里显示字符,存到硬盘上都是二进制,所以编码不对,程序就会出错。
常见编码有ascii编码(美国),GBK编码(中国),shift_JIS编码(日本),unicode(统一编码)等。
需要注意的是,存到硬盘上时是以何种编码存的,再从硬盘上读出来时,就必须以何种编码读,要不然就会出现乱码问题。
常见的编码错误的原因有如下,出现乱码时,按照编码之前的关系,挨个排错就能解决问题。
python解释器的默认编码;
Terminal使用的编码;
python源文件文件编码;
操作系统的语言设置。
Python支持中文的编码:utf-8、gbk和gb2312。uft-8为国际通用,常用有数据库、编写代码。gbk如windows的cmd使用。
编码转换
如果想要中国的软件可以正常的在美国人的电脑上实现,有下面两种方法:
让美国人的电脑都装上gbk编码
让你的软件编码以utf-8编码
第一种方法不可现实,第二种方法比较简单,但是也只能针对新开发的软件,如果之前开发的软件就是以gbk的编码写的,上百万行代码已经写出去了,重新编码成utf-8格式也会费很大力气。
所以,针对已经用gbk开发的软件项目如何进行编码转换,利用unicode的一个包含了跟全球所有国家编码映射关系的功能,就可以实现编码转换。无论以什么编码存储的数据,只要我们的软件把数据从硬盘上读到内存,转成unicode来显示即可,由于所有的系统、编程语言都默认支持unicode,所有我们的gbk编码软件放在美国电脑上,加载到内存里面,变成了unicode,中文就可正常展示。
类似用如下的转码的过程:
源有编码 -> unicode编码 -> 目的编码
decode(“UTF-8”) 解码 --> unicode --> encode(“gbk”) 编码
coding:utf-8 的作用
在python2文件中,经常在文件开头看到“ #_coding:utf-8 _ ”语句,它的作用是告诉python解释器此.py文件是utf-8编码,需要用utf-8的编码去读取这个.py文件。
python2.x的bytes与python3.x的bytes的区别
Python2将string处理为原生的bytes类型,而不是 unicode。而Python3所有的 string均是unicode类型。
在python2.x中,写字符串,比如
>>>s = ”学习“
>>>print s
学习
>>>s # 字节类型
'\xd1\xa7\xcf\xb0'
虽然说打印的是中文学习,但是直接调用变量s时,显示的却是一个个16进制表示的二进制字节,我们称这个为byte类型,即字节类型,它把8个

最低0.47元/天 解锁文章
2735

被折叠的 条评论
为什么被折叠?



