python编码

python编码

ASCLL、GBK、UTF-8、Unicode的关系

字符的编码形式

ASCLL:是最经典的编码方式,将序列中的每个字节理解为字符,可表示数字和字母128个不同字符。
GBK(GB2312的扩展):兼容ASCLL的不定长(长度为1-2),对于基本的128个字符仍用一个字节表示,中文用两个字表示。
UTF-8:与GBK类似,兼容ASCLL的不定长编码形式,可以表示世界多有文字,对英文使用一个字节,中文三个字节。
Unicode:是一种定长编码方式(同ASCLL),不兼容ASCLL,每2个字节作为一个字符,可以映射所有文字。

由于:Unicode编码的字符串体积很大,因此Unicode文字只在内存中的内在形式,具体的存储(文件、网页、屏幕输入输出等)都要靠外在的编码(UTF-8、GBK等)。

字节码Bytes

Python3中Bytes用b’xxx’表示x可以用字符,也可以用ascii表示。二进制文件(图片)统一采用字节码读写。
字节码修改:修改bytes中的某个字节要将其转换为bytearray才可以。

字节码与字符的关系

将表示二进制的bytes进行相应的编码就可以变为字符(utf-8格式的bytes和gbk格式的bytes不相同)

文件的编码

Python3中字符是Unicode的形式存储在计算机内存中,存储在硬盘中是bytes形式存储,如果将字符写入硬盘,就必须对字符进行encode。
例如:以’w’模式写入,要求内容是str类型,’wb’模式写入,要求内容是bytes类型。

Python3

python3的默认编码为unicode,由str类型进行表示。
将str类型转化为bytes类型,使用encode()内置函数,反之decode()函数。
二进制数据使用byte类型。
例如:显示的内容只显示英文和数字,中文是乱码,就需要将内容进行encode(‘utf-8’)编码

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值