python学习笔记-编码

编码问题:在计算机中只能识别0和1,由0和1组成的字串通常叫做比特(bit),网上比较流行的比特流就是全是0和1组成的代码。
由8个比特(bit)组成一个字节(byte),即1byte=8bit。那什么是字节呢?其实字节就是组成字符的最基本单位,不同的编码方式,字节组成字符的形式也不一样。比如,最初的ASCⅡ编码形式,只有127个字符被编进去了,一个字节一个字符。像中国的gb3212编码形式,就是两个字节组成一个字符;计算机通用编码Unicode,两个字节组成一个字符,个别是四个字节一个字符。现在最常用的就是UTF-8编码,属于一种可以变长的编码形式,由1-6个字节,兼容ASCⅡ编码,中文字符都是有3个字节组成,少数是4-6个字符。

比特(bit)属于计算机识别语言。
比特流(计算机)—–> 字节流(中间商,只是代表大小)——-> 字符流(高级语言)

在python3中,是采用Unicode编码的 ,支持多语言。
Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符。
字符转化成数字ord(),数字转化成字符chr()。

由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
由字节(byte)转化成字符(str) 可以用 decode()
由字符(str)转化成字节(byte) 可以用 encode()
Python对bytes类型的数据用带b前缀的单引号或双引号表示。
存储或传输时,字符要转化成字节(encode),以字节的形式存储或传输;读写时,字节转化成字符(decode),以字符的形式来读写。如果bytes中只有一小部分无效的字节,可以传入errors=’ignore’忽略错误的字节:
占位符%d(整数),%f(浮点),%s(字符),%x(十六)

发布于 。 属于 justsoso,被贴了[python,编码]标签