day07字符编码复习: 1. 字符编码:字符编码就是字符与数字的对应关系表 计算机要想工作必须通电,即用‘电’驱使计算机干活,也就是说‘电’的特性决定了计算机的特性。 电的特性即高低电平(人类从逻辑上将二进制数1对应高电平,二进制数0对应低电平), 关于磁盘的磁特性也是同样的道理。结论:计算机只认识数字 很明显,我们平时在使用计算机时,用的都是人类能读懂的字符 (用高级语言编程的结果也无非是在文件内写了一堆字符),如何能让计算机读懂人类的字符? 必须经过一个过程: #字符--------(翻译过程)------->数字 #这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码 ASCII:只能识别英文字符,1Bytes=1英文字符 GBK:可以识别中文字符与英文字符串,2Bytes=1中文字符 1Bytes=1英文字符 Unicode 1. 能够兼容万国字符 2. 与其他任意编码的二进制数都有映射关系 unicode格式------编码encode------->GBK格式的二进制数 GBK格式的二进制数-------解码decode------->unicode格式 UTF-8:unicode的转换格式,3Bytes=1中文字符 1Bytes=1英文字符 2. 在python中字符编码的应用: 1. 保证执行python程序的前两个阶段不乱码,加文件头 在文件的首行写入: #coding:文件存的时候用的编码 2. 字符串类型演变: python2有两种"字符串"相关类型: 种类一:#coding:gbk,x='上' # '上'存成了GBK编码后的二进制 种类二:x=u'上' # '上'存成了unicode编码后的二进制 python3有两种"字符串"相关类型 x='上' # '上'存成了unicode编码后的二进制 res=x.encode('gbk') #gbk格式的二进制 3. 总结: 1. 保证不乱码的核心法则:以什么编码存的就应该以什么编码取 2. 在python2中定义字符串,应该加上前缀u,比如x=u'你好' 3. 在编写python文件时,必须加文件头:#coding:文件存的时候用的编码 英文字节 中文字节 unicode 2 2 utf-8 1 3 gbk 1 2 ascii 1