字符编码和解码
编码和解码
-
大家都知道计算机只认识二进制数字 0 和 1
-
编码和解码是一种映射关系,比如ASCII码表中字符A对应的十进制是65、对应的二进制0100 0001。解码是当计算机读到 0100 0001,就到对应的ASCII码表中一查,就发现是"A"
-
编码:真实字符与二进制串的对应关系。 真实字符 -->二进制串
解码:二进制串与真实字符的对应关系。 二进制串 -->真实字符
常用编码方式:
1. ASCII码: 占8位 1字节
不支持 中文
支持 英文,数字,符号
2. gbk码 国标:
支持 中文,英文,数字,符号
英文 16位 2个字节
中文 16位 2个字节
3. Unicode 万国码:
支持 中文,英文,数字,符号
英文 32位 4个字节
中文 32位 4个字节
4. Utf-8 长度可变的万国码 最少用8位
支持 所有
英文 8位 1个字节
中文 24位 3个字节
编码及解码方式
-
encode(编码方式)–>拿到明文编码后对应的字节
decode() -->将编码后的字节解码成对应的明文,编码和解码应该保持同一个码。
-
在python2x中默认的编码方式为ASCII,编码解码转换过程
UTF-8 -->Unicode --> GBK: utf-8 —decode()—> Unicode —encode()—>GBK
GBK -->Unicode --> UTF-8: GBK —decode()—> Unicode —encode()—>UTF-8 -
在python3x中默认的编码方式为UTF-8
编码以及解码操作使用encode(),decode()
通常我们在建文件时,在文件开头要指定编码,例如:
python文件通常写:#-- coding:utf-8 --
html文件通常写:
CSS文件中 :@charset’utf-8’