主要通过阐述字符编解码的概念和在分析python中遇到的具体场景,来清楚的理解字符编码解码。
概念
首先得理解编码和解码的概念,无论是编码还是解码,也无论是utf8,gbk,unicode,ascii等等其他编解码方式,它们都是针对字符和二进制码而言。计算机只能存储和读取二进制码,而人只能认识字符,而将二进制码和字符进行连接的就是编解码方式。
人:字符 ——编码——> 计算机:二进制码
人:字符 <——解码—— 计算机:二进制码
例子1:记事本
保存原理:通过将输入的字符以指定编码方式(未指定则用系统默认编码方式)编码成二进制码存储到文件中。
读取原理:在显示输入内容之前,对文本中的二进制数据进行编码格式的判定,进而以相应的编码格式进行解码,从而正确的读取和显示内容。
例子2: 网页中的编码
要知道网页这个文件本身的编码格式和网页中声明的编码格式二者之间的区别,二者通常是一致的,但是区分二者能够更加准确的理解网页的编码。
<meta charset='utf-8'> # 这是网页中声明的编码格式
例子3:python中的编码
之所以会出现一些错误,是因为python读取文件不会自动识别文件的编码格式,而是需要进行指定的,不指定情况下默认是系统编码方式,一旦与文件本身的编码格式不一致就会出错。