python入门储备知识

2.字符编码

PS:编码问题最让程序员头疼! python2中文档头必须添加# -- coding:utf8 -- ,因为py2默认asci ,python3中不需要,py3解释器是以unioncode编码进行语法分析(py3默认utf-8 解释器再转换成unicode)

注意 :windows系统中文版默认编码是GBK,Mac OS \ Linux 系统默认编码是UTF-8

常见的字符编码介绍

  1. Unicode:国际标准字符集,也称之为万国码,至少由16位表示(两个字节)
  2. UTF-8:[汉字3个字节]对Unicode的压缩和优化,将所有的字符和符号进行分类,能用多少位表示就用多少位表示,ascii用一个字节表示,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节:欧洲的用两个,东亚的用3个字节表示(很生僻的字符才会被编码成4-6个字节。)
  3. GBK:[汉字两个字节],中国人指定的标准
  4. GB2312:中国指定的对于汉字比较全面的标准。(了解)

编码转换(注意,有坑!直接将utf8装换成gbk,惨了,回退(Ctrl+z)不回来了,无法撤回)

文件存取编码转换图

Python3的执行过程

  1. 解释器找到代码文件,把代码字符串按文件头定义的编码方式加载到内存,转成unicode(python程序进行系统调用读取其他文件是用的系统默认的编码方式,比如win为GBK,读取文件的时候可以指定编码方式)
  2. 按照语法规则解释代码。
  3. 所有的变量字符都会以unicode编码声明

ps:py3中值允许显示unicode编码的字符串,其他编码的字符串不给你显示,只显示对应的十六进制!
ps:decode---解码;encode---编码

常见编码错误排错思路

  • python解释器默认的编码-utf-8
  • python源文件文件编码
  • Terminal使用的编码
  • 操作系统的语言设置(特别是win!关键的命名最好全搞成英文,比如主机名!!!路径盘符等!!!否则会有一大堆坑!!!)

3.补充中...

posted @ 2018-06-24 23:49  哈哈大圣  阅读(121)  评论(0编辑  收藏  举报