关于Python的编码,字符串、bytes字节之间的转换,计算机文本文件的编码

本文探讨了Python中字符串、字节和字节数组之间的转换,包括代码点、编码转换方法(如encode和decode)、文件读取、以及BOM处理。重点介绍了如何在Python3中使用Unicode编码,并提到了非Unicode编码如UTF-8和GBK的转换操作。
摘要由CSDN通过智能技术生成

字符串二进制编码

字节码、字符串

代码点对应的字符

计算机只认识数字,所有的字符在计算机中,都是以数字的方式存储的

print(ord('A'))   # 65  对应16进制:41    用字节码表示:b'A'   b'\x41'
print(chr(104))   # h

print(chr(202))   # Ê
print(ord('Ê'))   # 202

print(ord('我'))  # 25105
print(chr(25105))

编码转换 方法:str.encode(‘编码’) 、 bytes.decode(‘解码’)

作用:字节和字符串之间转换 编码 解码

Python3使用的是Unicode编码

在python2或者3,字符串编码只有两类:
(1)通用的Unicode编码
(2)将Unicode转化为某种类型的编码,如UTF-8,GBK

encode(),编码
作用是,将Unicode对象编码成其他编码的字符串,编码后是字节码(bytes)

decode(),解码
作用是将其他编码的字符串、字节码(bytes)转换成Unicode编码

import chardet
查阅具体的编码类型,chardet.detect(bytes),bytes不能是Unicode编码类型,该方法不接受本来已经是Unicode的编码的参数,会报错,因为作为统一标准,Unicode不能再被解码,如果UTF-8想转至其他非Unicode,则必须先decode到Unicode,再encode到其他非Unicode的编码

s1 = 'ABCD'
print(s1.encode('ASCII'))
# 结果是b'ABCD' 原因是ASCII码里包含ABCD了(代码点跟二进制的编码是一致的) 只要前面有b就说明它是字节

s2 = '小鸟网络'
print(s2.encode('UTF8'))        # 汉字用不了ASCII  得用UTF8、gbk、gb2312这些
print(s2.encode
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值