编码史
- ASCII
最初计算机只使用英文及个数有限的字符,这样8个比特可以表示256个字符,足够当时的情况。 - GB2312 & GBK
计算机开始普及,进入中国国家标准总局发布了GB2312,收录了6763个汉字。
由于其不能满足100%中国人的要求,后来又发布了GBK编码,收录了27848个汉字。 - Unicode
为了国际通用,统一联盟国际组织提出了Unicode编码。覆盖全部国家的文字及符号。 - UTF-8
UTF-8作为一种Unicode编码的实现方式,在互联网中使用广泛。可以根据具体情况使用1-4个字节表示一个符号。
Python字符编码
Python2
在Python2中,普通字符串是以8位ASCII码进行存储的。若无指定编码,则无法在源码中出现非ASCII字符。
一般在首行加上如下代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
Python3
在Python3中,所有的字符串都是Unicode字符串。
Python中的字符转换
字符转换
编解码函数
#str与bytes类型相互转换
str.encode(encoding='UTF-8',errors='strict')
bytes.decode(encoding="utf-8", errors="strict")
在实际编写过程中要同一编码防止乱码的发生。