Python编码

Posted Presley

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = abc

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

       ABC.encode(ascii) :bABC
       中文.encode(utf-8):bxe4xb8xadxe6x96x87

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

        bABC.decode(ascii):ABC
        bxe4xb8xadxe6x96x87.decode(utf-8):中文

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

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

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

       len( bABC):3
       len(bxe4xb8xadxe6x96x87):6
       len(中文.encode(utf-8)):6

 








以上是关于Python编码的主要内容,如果未能解决你的问题,请参考以下文章

使用非utf-8编码在Python中解析XML

从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration

Python之如何优雅的重试

《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段