最开始的字符串编码是美国标准信息交换码,即ASCII码,他仅对10个数据,26个大写英文英文字母、26个小写字母英语字母及一些其它标记开展了编码。ASCII码较多只有表明256个标记,每一个标记占一个字节。伴随着现代信息技术的发展趋势,世界各国文本都必须开展编码,因此产生了GBK、GB2312、UTF-8编码等。在其中GBk和GB2312是在我国建立的汉语编码规范,应用一个字节表明英语字母,2个字节表明中文字符。而UTF-8是在我国常用的编码,对全球所有国家使用的标识符都开展了编码。UTF-8采用一个字节表明英文字符、3个字节表示汉语。在Python3.X中。默认设置采用的编码文件格式为UTF-8,采用这类编码合理地解决了中文乱码的问题。
在Python中,有俩种较常用的字符串类型,分别是str和bytes。在其中str表明Unicode标识符(ASCII码或是别的)bytes表明二进制数据信息(包含编码的文字)。这二种类型的字符串不可以拼凑在一起应用。一般来说,str在存储空间中以Unicode表明,一个字符对应诺干个字节。可是要是在互联网上传送,或是保留到硬盘上,就必须把str变换为字节类型,即bytes类型。
注:bytes类型的数据信息时带有b作为前缀的字符串(用反斜杠或是双引号表明)例如 b’xd2xb0’和’bmr’全是bytes类型的数据信息。
str类型和bytes类型中间可以根据encode()和decode()方式开展变换,这两个方式是互逆的全过程。
1.应用encode()方式编码
encode()方法为str目标方式,用以将字符串变换为二进制数据信息(即bytes)也称之为编码,其英语的语法文件格式如下所示:
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\'))
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。