关于字符编码的学习内容笔记如下:
1、计算机只能用0和1来进行记录和存储。计算机是二进制。
2、ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。一个英文或者英文符号占一个字节。
3、1980年中国为了解决计算机输入的问题,制定了GB2132编码。2000年后大幅度扩展成为GB18030。解决了汉字输入问题。
4、ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode。Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。Unicode中,一个英文字符占一个字节,一个中文字符占2个字节。
5、UTF-8是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。
6、Python2.7默认支持ascii码,因此会出现中文字符输出的问题。需要加上# -*- coding: utf-8 -*-来告诉解释器,用什么字符编码。Python3以上默认采用UTF-8编码,无需加# -*- coding: utf-8 -*-。