字符编码需要记住的概念
1.内存中固定使用的unicode编码 ,我们唯一可以改变的是存储到硬盘时使用的编码格式
2.要想保证存储的文件不乱码,应该保证文件当初是什么编码格式格式存的,就以什么编码格式读取
Unicode-------编码----gbk
unicode《------解码-------gbk
python2通过文件头指定文件编码
#coding:gpk & utf-8
GBK:用2Bytes表示一个中文字符,1Bytes去表示英文字符
utf-8 用1Bytes表示英文,用3Bytes表示中文 #默认使用
unicode:内存中使用的是unicode编码,unicode把全世界的字符
都建立好对应关系用2Bytes去表示一个字符
ASCII码表:用1Bytes表示一个英文字符,1英文字符=8bit=1Bytes
美国人用的
python3 默认使用编码是utf-8
Python2 默认使用编码是 Ascll
在python2中有两种字符串编码格式
1.unicode:
x=u’上‘ 字符前面加u
2.unidoce编码后
x=’上‘ 若果文件头 coding:utf-8那么上被存成utf-8格式
python3中只要一种字符串编码格式
1.unicode
x=’上’
2.编码与解码
unicode----------编码encode-----》gbk
unicode《-------解码decode-----gbk
总结python3
在pyhton2中的字符串类型str都是unicode按头文件指定编码
在python2中也可以制造unicode,需要在字符串前加u
现在统一默认都是使用utp-8编码,避免出现乱码
在python3中字符串类型str都是unicode编码的
所有python3中的字符串类型可以编码成其他字符编码格式,
编码的结果是Bytes类型