原创

5.python中文编码

python到目前为止,一共有两个版本,分别是2.x和3.x版本,根据官方正式通知2020年停止对python更新和维护,距离今天还有110天左右,所以正在学习python的小伙伴应该暗中庆幸一波。

python2.x版本默认采用ASCLL编码,python3.x版本则默认采用UTF-8编码,两者有什么区别呢?唯一区别就是如果代码或者注释中含有中文,ASCLL编码会出现乱码,UTF-8却可以正常显示中文,即python2.x版本中文显示不正常,python3.x版本正常。

一.为什么会出现乱码

编码和解码一一对应,把对应的数据编码,只有通过正确的方式解码才能得到对应的数据,反之得到的就是错误数据,乱码。

来个比喻 : 隔壁老王设了一个wifi密码:abcdefgh,你想使用老王密码,老王如果不告诉你,你实验100次都弄不出正常密码(杠精说:我用wifi万能钥匙)

二.如何解决乱码

解决乱码很简单,找到与编码正确的方式解码就可以了。我们继续回到helloword项目,代码如下:

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com

@File:helloworld.py
@Time:2019/9/12 20:37

@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
"""
print("世界你好")

第一行注释是告诉系统,这是一个Python可执行程序,Linux/OS X系统有效,Windows系统会忽略这个注释;

第二行注释是表示按照UTF-8编码读取源代码,虽然在pycharm中默认UTF-8,该行代码可有可无,如果把py文件放到其他环境编译呢?如果其他环境不是UTF-8,一旦有中文,必然乱码。

其他代码都是注释的无用代码,可以忽略不计!

三.重点总结

1.如果编码和解码方式不对应,会出现乱码

2.# -*- coding:utf-8 _*- 写在文件开始位置,默认指定文件编码格式为utf-8

值得注意的是:其实编码也算是头疼的问题,在以后的开发中你必然会遇到很多编解码的坑爹事故,因为字符编码涉及ascll , utf-8 , unicode , gbk , gb18030………

猜你喜欢:

1.pycharm/python /anaconda区别和联系

2.pycharm设置头文件模板

转载请注明猿说Python » python中文编码

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 5.python中文编码

    python到目前为止,一共有两个版本,分别是2.x和3.x版本,根据官方正式通知2020年停止对python更新和维护,距离今天还有110天左右,所以正在学习...

    猿说编程[Python和C]
  • 46.python GIL锁与互斥锁Lock的区别

    前面的文章分别介绍了python线程互斥锁Lock 和 python GIL锁,两个对 python线程threading 都会有影响,那么具体又有什么区别呢?

    猿说编程[Python和C]
  • 47.python bytearray/bytes/string区别

    在讲解 bytearray / bytes / string 三者的区别之前,有必要来了解一下字节和字符的区别:

    猿说编程[Python和C]
  • 5.python中文编码

    python到目前为止,一共有两个版本,分别是2.x和3.x版本,根据官方正式通知2020年停止对python更新和维护,距离今天还有110天左右,所以正在学习...

    猿说编程[Python和C]
  • QR 数据编码详解(二)

    每种编码模式针对其字符,不断优化以产生最短的编码二进制串。在此过程中它们采用的编码方法是不同的,本篇将主要解释数据编码过程。

    TTTEED
  • WEB项目中使用UEditor(富文本编辑器)

    Ueditor富文本编辑器是在很多项目里经常用到的框架,是百度开发团队开发的一款很好用的富文本编辑器

    SmileNicky
  • 2020TLC大会精彩回顾

    近期,第四届TLC大会在科兴科学园ECO国际会议中心完美落下帷幕。作为一年一度的技术盛会,本次大会云集国内20名技术专家,虽然受疫情影响,但是大家的技术热情依...

    腾讯即时通信IM
  • 密码发展史以及常用编码算法介绍

    描述:密码是一种用来混淆的技术,它希望将正常的(可识别的)信息转变为无法识别的信息。当然,对一小部分人来说,这种无法识别的信息是可以再加工并恢复的。密码在中文里...

    WeiyiGeek
  • OpenFeign超时控制

    由于OpenFeign底层是由Ribbon实现的,所以我们只要修改Ribbon的配置即可

    DencyCheng
  • IBC+Palette 实现屏幕内容编码优化

    https://www2.tutormeetplus.com/v2/render/playback?mode=playback&token=e632113e78...

    LiveVideoStack

扫码关注云+社区

领取腾讯云代金券