字符编码

储备知识点:

  1、计算系统可以分为三层:

    应用程序层

    操作系统

    计算硬件

  2、运行Python程序的三个步骤:

    1.先启动Python解释器

    2.再将Python文件当做普通的文本文件读入内存

    3.解释执行读入内存的代码,开始识别语法。

字符编码

1、什么是字符编码?

  字符编码表,将是人类使用的字符与数字一一对应,方便计算的处理与认识。

  1Bytes = 8bit  一个字节等于8个二进制位

  字符编码表的发展 

  ASCII码:只能识别英文字符,1英文字符=8bit
  用8个二进制bit(比特位)位表示一个英文字符


  GBK:能识别汉字与英文,1汉字=16bit,1英文字符=8bit
  Shift_JIS
  Euc-kr

  unicode:能够识别万国字符,1字符=2Bytes=16bit
  两大特点:
    1. 能够兼容万国字符
    2. 与各个国家的字符编码都有映射关系
    utf-8:是unicode的转换格式,1个英文字符=1Bytes 1汉字=3Bytes

重点:

  1、编码和解码的概念:

    字符(输入的内容)----编码----》Unicode的二进制(内存中状态)------编码----》gbk的二进制(硬盘中存储的状态)

    gbk的二进制(硬盘中存储的状态)-----解码-----》Unicode的二进制(内存的状态)------解码----》字符(输出的内容)

  2、解决乱码的核心方法

    字符用什么编码格式编码的,就应该用什么编码格式进行解码。上面两条编码和解码都相同。

    结论在,需要在py文件,文件头定义好。#coding:需要的使用的字符编码。

  3、python解释器默认的字符编码
    python2:ASCII
    python3:UTF-8

  文件头设定在Python解释器中的作用

    通过文件头可以修改python解释器默认使用的字符编码在文件首行写:#coding:文件当初存的时候用的字符编码

    针对python2解释器中定义字符串应该:x=u"上"

    对于python3解释即便是x="上"不加u前缀也是存成unicode

    在python3中

    x='上' # '上'内存中存成了uncidoe

    

    unicode--------encode----------->gbk
    res=x.encode('gbk') #res是gbk格式的二进制,称之为bytes类型

    gbk(bytes类型)-------decode---------->unicode
    y=res.decode('gbk') #y就是unicode

 

需要掌握字符编码的操作::

  1. 编写python文件,首行应该加文件头:#coding:文件存时用的编码
  2. 用python2写程序,定义字符串应该加前缀u,如x=u'上'
  3. python3中的字符串都是unicode编码的,python3的字符串encode之后可以得到bytes类型

    

 

posted @ 2018-09-19 18:59  msjaxuexi  阅读(212)  评论(0编辑  收藏  举报