zoukankan      html  css  js  c++  java
  • 字符编码

    一:字符编码

      1、字符编码

    • 什么是字符编码:将人能识别的字符转换为计算机能识别的01二进制的过程就是字符编码,转换的规则就是字符编码表

    • 常用的编码表:ASCII、GBK、Unicode、UTF-8

        了解:编码表的发展史

        1. ascii(ASCII):字母、数字、英文符号与计算机01标识符的对应关系
         思考:如何将128个字符用01完全标签
         二进制:11111111 => 255 => 1bytes(1字节) => 8个二进制位

        2.中国:研究汉字与计算机01标识符的对应关系:gb2312 => GBK(***) => GB18030
         日本:Shift_JIS
         韩国:Euc-kr

        3. 制造一个可以完成万国字符与计算机01标识符的对应关系的编码表
         编码表:unicode表
         py2:ascii,没有按万国编码,原因py2要诞生先有万国编码
         py3: utf-8, 采用万国编码来解释文本内容

        

        # 思考:unicode与utf-8什么关系
        unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,读取效率极高
        utf-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
        总结:内存都是按unicode存储数据,硬盘和cpu采用utf-8来存取数据
        #“abc你好”

        unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据。变长优点:(大量数据都是以英文存在,所以utf-8空间更小)传输速度更快

    • 编码操作:编码encode()、解码decode()

        s = '123呵呵'

        n_b = bytes(s, encoding='utf-8')
        print(n_b)

        b = b'123xe5x91xb5xe5x91xb5'
        n_s = str(b, encoding='GBK')
        print(n_s)

        在清楚原格式是字符串还是二进制时:

        # 将u字符串编码成b字符串

        print(u'你好'.encode('utf-8'))
        # 将b字符串解码成u字符串
        print(b'xe4xbdxa0xe5xa5xbd'.decode('utf-8'))

       2、字节与字符

    • 三种字符串:

      u''  :文本字符串,

      r''  :原义字符串,不对字符串内存做任何操作(eg: 的转化):s3 = r'abc你好 不好'

      b''  :二进制字符串,是用来数据传输的,是字符的二进制体现(如视频资源可以转化为二进制字符串,不翻转为视频资源,则就是普通字符串),它以字节为最小存储单位存放数据。注意:不是所有的数据编码为二进制字符串都是采用UTF-8编码表的,只有文本内容是,像视频、音频、图片等都有特定的编码方式(他们在编码之后,如果没有解码成本来的格式,就只是普通的二进制字符串)

    • # 字符与ASCII之间转化
      res = ord('A')
      print(res)
      res = chr(65)
      print(res)
      # ascii:DBCS双字节存储可以存放中文等一些文字与字符,可以完成字符与整数(ascii表中整数)的转化
      print(ord('⑩'), chr(9323))

  • 相关阅读:
    安装AD域时,出现NetBIOS名称冲突?
    SharePoint Server 2010 安装图解
    Visual C++ 2011519
    Visual C++ 2011520
    Visual C++ 2011518
    Visual C++ 2011520
    设计模式创建型 C++版本
    线程条件变量,一次性初始化
    Visual C++ 2011526
    Visual C++ 2011512
  • 原文地址:https://www.cnblogs.com/maoruqiang/p/10627250.html
Copyright © 2011-2022 走看看