python中文编码(5)

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

python学习-暗中观察

 

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

 

一.为何会出现乱码

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

 

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

多喝热水

 

二.如何解决乱码

解决乱码很简单,找到与编码正确的方式解码就能够了。咱们继续回到helloword项目,代码以下:微信

1ide

2学习

3编码

4spa

5code

6

7

8

9

10

11

12

13

14

# !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中文编码

相关文章
相关标签/搜索