一.前言
零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门
Python 到目前为止,一共有两个版本,分别是 2.x 和 3.x 版本,根据官方正式通知 2020 年停止对 Python 2.x更新和维护,所以正在学习Python 3.x的小伙伴应该暗中庆幸一波。
![图片[1]-Python中文编码-猿说编程](https://www.codersrc.com/wp-content/uploads/2021/03/c4ca4238a0b9238-6.png)
Python2.x 版本默认采用ASCLL编码,Python3.x 版本则默认采用 UTF-8 编码,两者有什么区别呢?
唯一区别就是如果代码或者注释中含有中文,ASCLL 编码会出现乱码,UTF-8编码却可以正常显示中文,即 Python2.x 版本中文显示不正常,Python3.x 版本正常。
二.为什么会出现乱码
编码和解码需要一一对应,把对应的数据编码之后,只有通过对应的方式解码才能得到正确的数据,反之得到的就是错误数据,乱码。
来个比喻 : 隔壁老王设了一个wifi密码:abcdefgh,你想使用老王密码,老王如果不告诉你,你实验100次都弄不出正常密码(杠精说:我用wifi万能钥匙)
![图片[2]-Python中文编码-猿说编程](https://www.codersrc.com/wp-content/uploads/2021/03/c81e728d9d4c2f6-5.png)
三.如何解决乱码
解决乱码很简单,找到与编码正确的方式解码就可以了。我们继续回到 helloword 项目,代码如下:
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿说编程
@Blog(个人博客地址): www.codersrc.com
@File:helloworld.py
@Time:2021/3/14 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………
五.猜你喜欢
2、本站永久网址:https://www.codersrc.com/
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
暂无评论内容