
上QQ阅读APP看书,第一时间看更新
1.6 字符串编码
案例37 编码与解码
导语
将字符串进行编码,需要调用str类的encode案例方法。编码后,encode方法将返回bytes对象(字节序列)。解码的过程则相反,需要调用bytes对象的decode方法。解码后,decode方法返回str对象。
str.encode方法与bytes.decode方法都有一个encoding参数,用于指定字符串编码格式,默认为UTF-8。其他常用的编码格式还包括GB2312、ASCII、GBK。
操作流程
步骤1:使用UTF-8格式将中文字符串进行编码和解码。

encode方法返回的字节序列,上述代码中bts变量的数据类型为bytes。
上面代码运行后将输出以下内容:

步骤2:使用ASCII格式将字符串进行编码和解码。

注意:ASCII格式不能用于编码和解码中文字符。
代码执行,得到的结果如下:

ASCII编码的字符本身支持直接输出为可见字符,因此,在控制台中可以看到字节序列的文本形式与原字符串相同,只是多了个“b”前缀,以此表明它是二进制数据,而非普通字符串。
案例38 ord与chr函数
导语
ord与chr是一对功能相反的函数。ord函数用于获取一个字符的Unicode编码,chr函数用于通过Unicode编码获取对应的字符。
操作流程
步骤1:初始化中文字符串,然后查询每个字符的Unicode编码。

字符串实际上是一个字符序列(序列中每个元素即为一个字符),所以可以通过for循环枚举出字符串里面的单个字符,再调用ord函数返回与字符对应的Unicode编码。
输出结果如下:

步骤2:初始化一组整数值,然后分别获取它们对应的Unicode字符。

得到的字符列表如下:
