python学航_字符编码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuehangpy/article/details/90145130

一、编码类型

1、ascci码
ascci码由美国人发明,用1个字节(byte)存储英文和字符,前期用了128个,后来新加了其他欧洲国家的符号,128~255这一段。
256个字符,基本上就是键盘上的所有字符。

2、unicode
2个byte,65535。因为后来发现还有其他国家的语言,而256个字符太少。

3、utf-8
UTF-8是Unicode的实现方式之一。
UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的编码规则很简单,只有二条:

1.对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2.对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
下表总结了编码规则,字母x表示可用编码的位。

4、GBK
GBK全称《汉字内码扩展规范》(GBK即“国标)就是国家制定的标准.

二、转码

在python程序运行过程中,如果遇到编码不一致(就好像中国人和美国人在一起,如果语言不通的话,就无法沟通。),就需要进行转码。相当于需要有一个翻译。

在运行Python程序的过程中,会涉及到三个方面的编码:

1.Python程序文件本身的编码(test.py文件的编码)–自身文件

2.Python程序运行时环境的编码(比如securecrt,类似mysql客户端连接时的编码)–客户端

3.Python程序读取外部文件的编码(引用外部文件的编码)–外部文件

a.encode(* *):将a 编码 为 * *编码格式的字符串或unicode对象

a.decode(* *):将a 解码 为 unicode编码格式的字符串或unicode对象
默认utf-8转码

a="我爱我家"
print(a.encode())

转换成二进制字节码 参数默认要转换的代码的编码方式,如要转换的为GBK 就填写GBK ,如果是UTF-8则填写UTF-8

a="我爱我家"
n=a.encode()
print(n.decode())

转换成utf-8

猜你喜欢

转载自blog.csdn.net/xuehangpy/article/details/90145130