python中的encode()和decode()函数
前⾔:
我们知道,计算机是以⼆进制为单位的,也就是说计算机只识别0和1,也就是我们平时在电脑上看到的⽂字,只有先变成0和1,计算机才会识别它的意思。这种数据和⼆进制的转换规则就是编码。计算机的发展中,有ASCII码,GBK,Unicode,utf-8编码。我们先从编码的发展史了解⼀下编码的进化过程。
编码发展史
美国⼈发明了计算机,⽤⼋位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()
decode英⽂意思是解码,encode英⽂原意编码
字符串在Python内部的表⽰是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另⼀种编码。
decode的作⽤是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表⽰将gb2312编码的字符串str1转换成unicode 编码。
encode的作⽤是将unicode编码转换成其他编码的字符串,如de('gb2312'),表⽰将unicode编码的字符串str2转换成gb2312编码。
总得意思:想要将其他的编码转换成utf-8必须先将其解码成unicode然后重新编码成utf-8,它是以unicod
e为转换媒介的如:s='中⽂' 如果是在utf8的⽂件中,该字符串就是utf8编码,如果是在gb2312的⽂件中,则其编码为gb2312。这种情况下,要进⾏编码转换,都需要先⽤ decode⽅法将其转换成unicode编码,再使⽤encode⽅法将其转换成其他编码。通常,在没有指定特定的编码⽅式时,都是使⽤的系统默认编码创建的代码⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。