二丶人生苦短,我用python【第二篇】

1 编码

  python解释器在加载 .py 文件中的代码时,对内容默认进行ascill编码,因此存在中文会报错,所以需要告诉python解释器,用什么编码来执行源代码。)

  ASCII码,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

  Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。

  UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...    

问题:python程序在windows终端下乱码 

  Windows的默认编码为GBK,Linux的默认编码为UTF-8。

  python2.7 中utf-8转gbk需先转成unicode再由unicode转成gbk。

  

 

  decode:解码

  encode:编码

  python3中可直接由utf-8转成gbk。python3内部会先把utf-8转成unicode再由unicode转成gbk。(python3中unicode也就没有了)

 

posted @ 2018-02-05 22:28  软刺sec  阅读(338)  评论(0编辑  收藏  举报