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

    python中输出结果乱码怎么解决?

    yangyang2020-05-27 10:39:58原创5868

    python输出中文乱码的解决方法:

    1、在源码文件第一行添加 #-*-coding:utf-8-*-#encoding=utf-8#encoding=UTF-8

    注意:一定要在第一行!

    在python2中第一行不加#-*-coding:utf-8-*-会输出下面的错误:

    File "ex1.py", line 16

    SyntaxError: Non-ASCII character '\xe8' in file ex1.py on line 16, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

    2、在字符串前加 ‘ u ’

    3、若上述2种方式仍然不能保证能输出正常输出中文,就需要做编码解码设置

    encode: 编码(真实字符与二进制串的对应关系,真实字符→二进制串)

    decode: 解码(二进制串与真实字符的对应关系,二进制串→真实字符)

    下面介绍几种常用的编码方式:

    UTF-8:Unicode Transformation Format-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。

    UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。

    GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大。

    GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:

    GBK、GB2312<===>Unicode<===>UTF8。这一点非常关键,就是两种不同的编码方式之间的互相转换,要通过Unicode编码作为桥梁。

    更多Python知识请关注Python自学网

    专题推荐:python
    上一篇:python如何生成均匀分布的随机数? 下一篇:python中负数次方怎么表示?

    相关文章推荐

    • python中怎样画分段函数?• python中怎么样进行矩阵运算?• 看看python怎么知道谁把你微信拉黑了

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网