python中的encode()和decode()函数

前言:编码

咱们知道,计算机是以二进制为单位的,也就是说计算机只识别0和1,也就是咱们平时在电脑上看到的文字,只有先变成0和1,计算机才会识别它的意思。这种数据和二进制的转换规则就是编码。计算机的发展中,有ASCII码,GBK,Unicode,utf-8编码。咱们先从编码的发展史了解一下编码的进化过程。spa

 

编码发展史code

  • 美国人发明了计算机,用八位0和1的组合,一一对应英文中的字符,整出了一个表格,ASCII表
  • 计算机传入中国,中国地大物博,繁体字和简体字多,8位字节最多表示256个字符,知足不了,因而对ASCII扩展,新表叫GB2312
  • 后来发现GB2312还不够用,扩充以后造成GB18030。
  • 每一个国家都像中国同样,把本身的语言编码,因而出现了各类各样的编码,若是你不安装相应的编码,就没法解释相应编码想表达的内容。
  • 各自编码没法国际交流。一个国际组织一块儿创造了一种编码 UNICODE(Universal Multiple-Octet Coded Character Set)规定全部字符用两个字节表示,就是固定的,全部的字符就两个字节,计算机容易识别。2的16次方能够表示全部的字符了。
  • UNICODE虽然解决了各自为战的问题,可是美国人不肯意了,由于美国原来的ASCII只须要一个字节就能够了。UNICODE编码却让他们的语言多了一个字节,白白浪费一个字节的存储空间。通过协商,出现了一种新的转换格式,被称为通用转换格式,也就是UTF(unicode transformation format).常见的有utf-8,utf-16。utf-8规定,先分类,美国字符一个字节,欧洲两个字符,东南亚三个字符。

 

encode()和decode()orm

  • decode英文意思是 解码,encode英文原意 编码
  • 字符串在Python内部的表示是unicode编码,所以,在作编码转换时,一般须要以unicode做为中间编码, 即先将其余编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另外一种编码。
  • decode的做用是将其余编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。
  • encode的做用是将unicode编码转换成其余编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。
  • 总得意思:想要将其余的编码转换成utf-8必须先将其解码成unicode而后从新编码成utf-8,它是以unicode为转换媒介的 如:s='中文' 若是是在utf8的文件中,该字符串就是utf8编码,若是是在gb2312的文件中,则其编码为gb2312。这种状况下,要进行编码转换,都须要先用 decode方法将其转换成unicode编码,再使用encode方法将其转换成其余编码。一般,在没有指定特定的编码方式时,都是使用的系统默认编码建立的代码文件
相关文章
相关标签/搜索