03_01、字符编码

一、字符编码

  1、意义

    字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要考虑字符编码的问题。

    人类在与计算机交互时,用的都是人类能读懂的字符,如中文字符、英文字符、日文字符等  

    而计算机只能识别二进制数

    翻译的过程必须参照一个特定的标准,该标准称之为字符编码表,该表上存放的就是字符与数字一一对应的关系。

   2、字符编码发展史

    1、一家独大

       计算机起源于美国,所以,最开始的时候,计算机只考虑了英文字符

      ASCII码表:
      1、只有英文字符与数字的一一对应关系
      2、一个英文字符对应1Bytes,1Bytes=8bit,8bit最多包含256个数字,可以对应256个字符,足够表示所有英文字符
      0 : 48
      A :65
      a : 97

 

    2、诸侯割据

      为了让计算机能够识别中文和英文,中国人定制了GBK
      GBK编码:
      # GBK表的特点:
      1、只有中文字符、英文字符与数字的一一对应关系
      2、 一个中文字符使用两个或者两个以上的bytes记录
        2bytes = 16位
        16位可以表示 2 ** 16 种情况
      3、如果超过了2 ** 16,gbk就会使用一个中文字符用3个字节表示
  
      # Shift_JIS表的特点:
      1、只有日文字符、英文字符与数字的一一对应关系

 

      # Euc-kr表的特点:
      1、只有韩文字符、英文字符与数字的一一对应关系

    3、分久必合

      为了让世界各国的字符统一起来,就诞生了unicode编码
      unicode(万国码): 统一使用2个字节进行表示
      eg:adsadsadsadsadsad
      # 1. 存在所有语言中的所有字符与数字的一一对应关系,即兼容万国字符

      utf-8编码:(unicode的优化版本)
      把英文字符还按照一个字节表示
      中文字符还按照2个字节或者更多字节表示
  

  3、字符编码的差异

    1、解决乱码问题

      切换对应的编码

    2、python解释器不同版本代码的差异

      python2:python2诞生的时候,还没有utf8的编码,所以,python2中不能使用utf8的编码

      python3:utf8编码

    3、pycharm添加模板注释

      settings
      editor
      file and code templates
      python script
      在这个里面写你想添加的内容

    4、编码与解码

      编码:
        # 把人类能够读懂的字符按照转成计算机能够识别的字符的过程
      解码
        # 把计算机能够读懂的字符按照转成人类能够识别的字符的过程

      # 编码
        # print(s.encode('gbk'))
        s1 = s.encode('utf8')

      # 解码
        s2 = s1.decode('utf8')
        print(s2)

 

 

 

posted @ 2022-01-04 15:36  三三得九86  阅读(126)  评论(0)    收藏  举报