• 技术文章 >常见问题 >Python常见问题

    python encode乱码怎么办

    silencementsilencement2020-03-12 13:48:29原创2035

    字符串在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)  #用来判断是否为unicode

    用非unicode编码形式的str来encode会报错

    更多技术请关注Python视频教程

    专题推荐:encode
    上一篇:python ide如何运行 下一篇:怎么用python创建文件夹

    相关文章推荐

    • python注释参与编码吗• python是什么编码格式

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网