• 技术文章 >后端开发 >php教程

    python中文乱码怎么解决?

    PHPzhongPHPzhong2020-09-05 10:12:51原创8287

    python中文乱码的解决方法:1、文件存储设为utf-8格式,并使用encoding将编码声明为utf-8;2、在中文前面加上个小u标记,将中文用unicode存储;3、把中文强制转换为GBK或者unicode编码。

    python中文乱码问题的解决方法:

    1、demo.py 文件和编码声明都为 GBK

    这种方法比较笨,就是把 demo.py 文件改为 GBK 存储,而且编码声明也是GBK,个人不推荐。

    # encoding:gbk
    s = "中文"
    print s
    print repr(s)

    1.jpg

    2、中文用 unicode 表示

    只要在中文前面加上个小u标记,后面的中文就用 unicode 存储了。

    # encoding:utf-8
    s = u"中文"
    print s
    print repr(s)

    cmd 下是可以打印 unicode 字符的,如下:

    2.jpg

    3、把中文强制转换为GBK或者unicode编码

    强制转换为unicode编码,在 Python 中编码是可以互相转换的,比如从utf-8转换为gbk,不同编码之间不能直接转换,需要通过unicode字符集中间过渡下,从上面基础知识可知unicode是一种字符集,不属于编码,而utf-8是具体实现unicode思想的一种编码。utf-8转换为unicode是一种解码过程,通过decode可从utf-8解码成unicode。

    # encoding:utf-8
    s = "中文"
    u = s.decode('utf-8')
    print u
    print type(u)
    print repr(u)

    3.jpg

    强制转换为gbk编码,上一步已经从utf-8转换为unicode了,从unicode是编码的过程,通过encode实现。

    # encoding:utf-8
    s = "中文"
    u = s.decode('utf-8')
    g = u.encode('gbk')
    print g
    print type(g)
    print repr(g)

    4.jpg

    总结

    windows cmd 窗口下不支持utf-8,想要显示中文必须转换为gbk或者unicode,而 Python idle 中这三种编码都支持。中文乱码的出现都是由于编码不一致导致的,存储的是用utf-8,打印的时候用gbk就会乱码了,所有要保证不乱码尽量保持统一,建议全部使用unicode。

    更多相关知识,请访问 PHP中文网!!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python 中文乱码
    上一篇:PHP框架解决思路 下一篇:smsrty模板中页面在wamp打开没JS和CSS
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• python中if语句的基本格式• 导入python标准数学函数模块的语句是什么• python如何创建二维列表?• python创建数值列表的方法• windows下如何查看python的安装路径
    1/1

    PHP中文网