python中的字符编码

字符编码需要记住的概念

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类型

原文地址:https://www.cnblogs.com/Marcki/p/10111971.html