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) :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
以上是关于Python编码的主要内容,如果未能解决你的问题,请参考以下文章
从 XML 声明片段获取 XML 编码:部分内容解析不支持 XmlDeclaration
《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片