python-字符集和编码
一、知识点
【1】基本概念
- 位:计算机中的最小编码,二进制中的一位,0/1
- 字节:8位组成1个字节
- 字符:我们看见的文字和符号(汉字、标点、英文、表情)
- 字符集:字符的集合,一套文字符号集合的描述
- 编码:将字符转换成0/1
- 解码:将0/1转换成字符
【2】字符编码发展:ASCII、GB2312、GBK(兼容汉字)、GB18030(兼容少数名族语言)、ucs(必须2位开始,不足2位用0扩充,会造成空间浪费)、unicode、UTF8(可以用1,2,3个字节表示1个字符,兼容性高)
【3】python3默认编码是UTF8,支持直接输出汉字等
二、字符串和bytes类型
【1】ord和chr函数
【2】数据类型:bytes,要在字符串前面加上b
【3】字符串和bytes类型的相互编码和解码
【4】bytes类型用来网络传输,字符串不能网络传输
三、具体代码
# -*- coding:utf-8 -*-
# __author__:pansy
# 2022/5/8
# 一、两个函数:
# 1、ord函数:单个字符的整数表示
# 2、chr函数:整数的字符表示
print(ord('潘')) # 28504
print(chr(28504)) # 潘
# 二、数据类型
a = 'abc' # 字符串类型
print(type(a))
b = b'abc' # bytes类型,在字符串前面加上b
print(type(b))
# 三、字符串和bytes类型编码解码(注:编码和解码的字符编码类型需要一致)
c = '啊啊啊,pan'
d = c.encode('utf8') # 字符串编码,b'\xe5\x95\x8a\xe5\x95\x8a\xe5\x95\x8a\xef\xbc\x8cpan'
print(d)
e = b'\xe5\x95\x8a\xe5\x95\x8a\xe5\x95\x8a\xef\xbc\x8cpan'
print(e.decode('utf8')) # 解码
# 四、bytes类型作用:网络传输;不能直接用字符串传输,要用bytes传输