1、字符串编码转换
1.1 含义
字符串编码的本质可以看作是二进制数据与语言文字之间的一种映射或对应关系。
它是将字符(不仅仅是语言文字,还包括标点符号、控制字符等)转换成一种标准化的二进制表示形式,以便计算机能够存储、处理和传输这些信息。
1.2 编码格式
(1) ASCII
仅对数字、英文字母、以及一些其他英文符号进行了编码
(2) GB2312/GBK 等
是我国制定的中文编码标准,兼容ASCII编码,使用一个字节表示一个英文字符,同时扩展使用两个字节表示一个中文字符
(3) Unicode(万国码)
是一种统一的字符编码系统,用于表示世界上几乎所有的字符。在大多数情况下,一个字符可以被编码为2个字节,对于非常偏僻或者特殊的字符,可能需要使用4个字节来表示
(4)utf-8(不定长编码)
是国际通用的编码方式。常用的英文字符和标点符号仅占用一个字节,多数欧洲语言的字符需要2个字节,而中文字符等通常是3个字节,只有极少数非常生僻的字符才会被编码为4个字节。
1.3 字符串编码转换
str(字符串):字符串类型,主要是用于文本数据的处理!
bytes(字节串):字节串类型,直接对应于计算机中二进制数据,二进制就是以字节为单位!
两种数据类型是不同对象使用的,str是人类理解的,bytes是计算机理解的;
两种类型无法拼接或者混合使用,需要转换后才能使用,比如我们需要把文本数据进行网络传输 或者 保存到我们电脑磁盘的时候,字符串就必须转换为字节串(二进制数据)!
(1)encode():将 str 转换为指定编码的 bytes
# 示例
st = "你好" # 2个中文字符 ==》 6个字节(utf8)
utf8_bytes = st.encode()
print(utf8_bytes, type(utf8_bytes)) # b'\xe4\xbd\xa0\xe5\xa5\xbd'
gbk_bytes = st.encode("gbk")
print(gbk_bytes) # b'\xc4\xe3\xba\xc3'(2)decode():将 bytes 按照指定的编码格式转换为 str (解码)
# 示例1
utf8_bytes = b'\xe4\xbd\xa0\xe5\xa5\xbd'
st = utf8_bytes.decode()
# st = utf8_bytes.decode("gbk") # 浣犲ソ
print(st, type(st))# 示例2
gbk_bytes = b'\xc4\xe3\xba\xc3'
print(gbk_bytes.decode("gbk"))著作权归文章作者所有。 未经作者允许禁止转载!