python的编码问题

最初的编码只是在计算机的发源地美国有ASC编码 这个编码只有一个字节表示一个字符 所以最多也就可以表示256个字符;

后来欧洲国家也想把非英语的字符加入到计算机编码当中于是就有了ISO-8859-1 通常叫 做Latin-1,向下兼容ASCII,此字符集支持部分于欧洲使用的语言。

再后来各个地方国家也相继推出了自己国家的编码,像我国的GB2312/GBK 这就是汉字的国标码,专门用来表示汉字,是双字节编码,而英文字母和iso8859-1一致(兼容iso8859-1编码)。其中gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字,gbk是兼容gb2312编码的。

再后来由于各个国家都有自己的一套编码这很不利于后来的计算机的发展,国际的ISO组织就编写了Unicode码俗称万国码。

但是这样子美国就不乐意了原来的一个字符只需要一个字节即可存储,而现在却需要两个字节来存储一个字符,这就增加了存储的空间,而且降低了传输的效率。

后来就出现了utf-8 gbk 等对unicode的编码方式,在网络上传输,在本地硬盘中存储必须对unicode进行编码。

在python中 str类型就是unicod格式  而bytes类型是二进制格式

python中提供了encode方式对unicode进行编码,压缩,这样就可以在网络上进行传输,在电脑上存储下来。

网络中读取的二进制文件提供了decode方式对二进制文件进行解码转换成unicode格式这样就可以在python中展示出来

使用:

str.encode(‘编码方式’)

bytes.decode('解码方式')

猜你喜欢

转载自www.cnblogs.com/guducp/p/9079105.html