zoukankan      html  css  js  c++  java
  • Python编码

    1、字符编码
      a、计算机只能处理数字,如果要处理文本就必须先把文本转换为数字
      b、ASCII:大写字母A的编码是65,小写字母z的编码是122
      c、ASCII编码是一个字节,而Unicode编码通常是2个字节。
      d、在计算机内存中,统一使用Unicode编码,用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。
      e、对于单个字符的编码,python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

               ord('A') :65
                ord(''):20013
                chr(66):'B'
                chr(25991):''

      f、由于python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节,如果要在网络上传输,或者保存到磁盘上,就需要把str变成以字节为单位的bytes.
      g、python对bytes类型的数据用带b前缀的单引号或双引号表示: 

           x = b'abc'

         要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样但bytes的每个字符都只占用一个字节。
      h、以Unicode表示的str通过encode()方法可以编码为指定的bytes.

           'ABC'.encode(ascii) :b'ABC'
           '中文'.encode('utf-8'):b'xe4xb8xadxe6x96x87'

      i、如果我们从网络或磁盘上读取了字节流那么读到的数据就是bytes,要把bytes变为str,就用decode()方法

            b'ABC'.decode('ascii'):'ABC'
            b'xe4xb8xadxe6x96x87'.decode('utf-8'):'中文'

      j、要计算str包含多少个字符可以用len()函数:

           len('ABC'):3
           len('中文'):2

      k、len()函数计算的是str的字符数,如果换成bytes,len()函数就计算的是字节数:

           len( b'ABC'):3
           len(b'xe4xb8xadxe6x96x87'):6
           len('中文'.encode('utf-8')):6

       l、编码与解码方式如图。

  • 相关阅读:
    [原创]java WEB学习笔记26:MVC案例完整实践(part 7)---修改的设计和实现
    [原创]java WEB学习笔记25:MVC案例完整实践(part 6)---新增操作的设计与实现
    [原创]java WEB学习笔记24:MVC案例完整实践(part 5)---删除操作的设计与实现
    [原创]java WEB学习笔记23:MVC案例完整实践(part 4)---模糊查询的设计与实现
    Tapestry IoC Configuration
    Tapestry IoC Decorator
    Tapestry IoC Service
    Tapestry-Again
    mysql error nr.1045 解决方法
    Bootstrap学习 导航
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/9128212.html
Copyright © 2011-2022 走看看