最早的字符串编码是美国标准信息交换码,即ASCII码。它只对10个数字、26个大写英文字母、26个小写英文字母和一些其他符号进行编码。ASCII码最多只能表示256个符号,每个符号占用一个字节。随着信息技术的发展,各国的文字都需要编码,于是出现了GBK、GB2312、UTF-8编码等。其中,GBk和GB2312是我国制定的中文编码标准,用一个字节表示英文字母,用两个字节表示汉字。UTF八码是中国的一个通用码,它编码了世界上所有国家使用的字符。UTF-8用一个字节代表英文字符,用三个字节代表中文。在Python3中。x默认编码格式为UTF-8,有效解决了中文乱码问题。
在Python中,有两种常用的字符串类型,str和bytes。其中str表示Unicode字符(ASCII代码或其他),bytes表示二进制数据(包括编码文本)。这两种类型的字符串不能拼接在一起。通常str在内存中用Unicode表示,一个字符对应一个Nogan字节。但是如果是在网络上传输或者保存到磁盘上,就需要把str转换成byte类型,也就是字节型。
注意:bytes类型数据是带b前缀的字符串(用单引号或双引号表示),例如b & # 8217xd 2 XB 0 ’还有’bmr & # 8217都是字节数据。
str类型和bytes类型可以通过encode()和decode()方法进行转换,这是一个相互的过程。
1.使用encode()方法进行编码。
encode()方法是一个str对象方法,用于将字符串转换为二进制数据(即字节)。也称为编码,其语法格式如下:
str.encode([encoding="utf-8"][,errors="strict"])参数说明:str:表示要进行转换的字符串encoding="utf-8":可选参数,用于指定进行转码时采用的字符编码,默认为UTF-8,如果想使用简体中文,也可以设置为gb2312。当只有一个参数时,也可省略前面的encoding=,直接写编码。errors="strict":可选参数,用于指定错误处理方式,其可选址值strict(遇到非法字符就抛出异常)ignore(忽略非法字符)、replace(用?替换非法字符)或 xmlcharrefreplace(使用xml的字符引用)等,默认为strict。
注意:当使用encode()方法时,原始字符串不会被修改。如果需要修改原字符串,需要重新赋值。
例如:
verse='野渡无人舟自横'byte=verse.encode('GBK')print('原字符串:',verse)print('转换后:',byte)
2.使用decode()方法
decode()方法是bytes对象的一种方法,用于将二进制转换为字符串,即encode()方法转换的结果再次转换为字符串,也称为“解码”。语法格式如下:
bytes.decode([encoding="utf-8"][,errors="strict"])参数说明:bytes:表示要进行转为二进制数据,通过是encode()方法转换后的结果。encoding="utf-8":可选参数,用于指定进行解码时采用的字符编码默认为utf-8,如果想使用简体中文,可以设置为gb2312。当只有一个参数时,可以省略前面的encoding=,直接写编码。errors="strict":可选参数,用于指定错误处理方式,其可选址值strict(遇到非法字符就抛出异常)ignore(忽略非法字符)、replace(用?替换非法字符)或 xmlcharrefreplace(使用xml的字符引用)等,默认为strict。
注意:当使用decode()方法时,原始字符串不会被修改。如果需要修改原字符串,需要重新赋值。
例如,在上面的例子中编码后获得的结果在这里被解码:
print('解码后:',byte.decode('GBK'))
本文来自枯萎○还行投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/640142.html