python encode和decode,encode和decode
Encode: Encode: decode python的内部编码模式是unicode,decode将其他编码模式转换为unicode编码模式,encode将unicode转换为其他编码模式。所以unicode相当于一次中转:(1)解码-unicode-编码(2)编码-unicode-解码。
Python中字符串的表示是unicode编码。因此,在编码转换中,通常使用unicode作为中间编码,即先将其他编码的字符串解码成unicode,然后再编码成另一种编码。
decode的作用是把其他代码编码的字符串转换成unicode代码,比如str1.decode(gb2312 ),意思是把gb2312编码的字符串转换成unicode代码。
encode的作用是将unicode编码转换成其他编码字符串,比如str2.encode(gb2312 ),意思是将unicode编码字符串str2转换成gb2312编码。
所以在转码的时候,首先要了解字符串str是什么编码,然后解码成unicode,再编码成其他编码。
中代码字符串的默认编码与代码文件本身的编码一致。
例如s=中文
如果在utf8文件中,字符串是utf8代码,如果在gb2312文件中,其代码是gb2312。在这种情况下,为了执行编码转换,需要首先使用decode方法将其转换为unicode编码,然后使用encode方法将其转换为其他编码。通常,当没有指定特定的编码方法时,使用系统的默认编码来创建代码文件。
如果字符串是这样定义的:s=u 中文
字符串的编码被指定为unicode,即python的内部编码,与代码文件本身的编码无关。因此,在这种情况下,我们只需要直接使用encode方法将其转换为指定的代码。
如果一个字符串已经是unicode了,再解码就错了,所以通常需要判断它的编码方式是不是unicode:
is instance(s,unicode) #用于确定是否为unicode。
以非编码编码的形式用str编码会报错。
资料来源:https://www.cnblogs.com/jack1989/p/10345627.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。