转自:https://www.toutiao.com/a6560674216700543501/?tt_from=mobile_qq&utm_campaign=client_share×tamp=1529542986&app=news_article&utm_source=mobile_qq&iid=35692403316&utm_medium=toutiao_ios
1、计算机编码
计算机本质上存储、计算、处理的信息的载体是二进制数字,如果要展示出文本、图像、声音等多媒体信息,就需要对二进制进行编解码,其实就是人看上去或是听上去的东西与计算机机器内部处理的东西的转化方式。
2、计算机文本的编码格式
文本的编码其实是对应的一张规定的表,表中规定了计算机数字所代表的文本字符,目前最常用的编码方式是utf-8,大约30年前最常用的格式是ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)编码,ASCII编码只能表示英文、数字、字母等,对用其它语言则不支持,尤其像中文,中文常用的编码方式是GB2312,在1992年,美国的公司为了支持全球的业务,又发明了utf-8(号称万国码)的编码方式,几乎支持全球所有的语言。
3、Python语言的源代码是文本文件,由于是文本文件,就会涉及到编码的问题,Python发明的时候,主要以ASCII编码格式为主,后来发展到Python3的时候,全面支持了utf-8的编码方式,但是Python3的标准库的源代码依然基于ASCII编码,对于我们中国人使用Python时,经常会由于源代码编码的问题导致代码执行过程中出现问题,比如当用VS2017编写Python时,默认会采用ASCII编码,但是当用VS code编辑时,默认是utf-8格式,所以在用VS code建立的文件用VS 2017编辑时就有可能会出问题。
4、Python源代码编码格式的申明,在源代码中申明了源码格式,Python解释器就会根据声明的格式进行读取,这样就不会运行错误,具体声明方式为在源代码的第一行写入以下注释语句:
# -*- coding: encoding -*-
#encoding 为 Lib/codecs.py库里规定的编码,比如常用的有 utf_8、gb2312等,如果源代码采用utf-8的编码,则第一行的注释语句为:
# -*- coding: utf_8 -*-
参考资料:python3.6.5官方文档