
Python中字符串的表示是unicode编码。因此,在进行编码转换时,通常需要以unicode作为中间编码,即首先解决其他编码的字符串
码(decode)成unicode,然后从unicode编码(encode)另一种编码。
decode的作用是将其他编码的字符串转换为unicode编码,如str1.decode('gb2312'),将gb2312编码的字符串str1转换为unicode
编码。
推荐:Python教程
encode的作用是将unicode编码转换为其他编码的字符串,如str2.encode('gb2312'),将unicode编码的字符串str2转换为gb2312
编码。
所以转码的时候一定要先搞清楚字符串str是什么编码,然后decode变成unicode,再encode变成其他编码。
代码中字符串的默认编码与代码文件本身的编码一致。
如:s='中文'
如果是在utf8文件中,字符串是utf8编码,如果是在gb2312文件中,则为gb2312。在这种情况下,有必要进行编码转换
首先用decode方法将其转换为unicode编码,然后用encode方法将其转换为其他编码。通常,在没有特定的编码方法的情况下使用
默认编码系统创建的代码文件。
假如字符串是这样定义的:s=u'中文'
字符串的编码指定为unicode,即python的内部编码,与代码文件本身的编码无关。因此,在这种情况下,只需要进行编码转换
直接使用encode将其转换为指定编码即可。
如果一个字符串已经是unicode,那么解码就会出错,所以通常需要判断它的编码方法是否是unicode:
isinstance(s,unicode)#用于判断unicodede是否用于判断unicode
以非unicode编码的str来encode会报错
更多技术请关注Python视频教程。