
也欢迎关注我的知乎账号 @石溪 ,将持续发布机器学习数学基础及Python数据分析编程应用等方面的精彩内容。
我从Python字符串的编码和解码的角度来说说这个问题。字符编码对于理解非英语字符的有关内容非常有帮助。
从本质上来说,编码和解码就是Python中str和bytes这两种字符串类型之间的互相转换。
str包含一个encode方法,使用特定编码将该字符串其转换为一个bytes,这称之为编码。bytes类包含了一个decode方法,也接受一个编码作为单个必要参数,并返回一个str,这称之为解码。这种转换操作是显式的操作,且必须根据数据被编码时采用的编码类型进行解码。
首先说说编码,即将unicode的str文本字符串转换为bytes的字节字符串,可以显式的传入指定编码(一般来说采用utf-8编码),或使用平台的默认编码。
那么我们看看,在不写编码的时候,平台默认的编码方式到底是什么
可以看出我这个平台默认选择的就是utf-8编码方式。
那对应的,再来谈谈decode解码方法
将bytes类型字符串转换成str类型的unicode文本字符串也是一样,要么指定编码参数,要么使用平台的默认参数。这个例子中,我们要操作的字节字符串b是通过utf-8编码方式对文本字符串'π排球の'编码而形成的。
从结果中我们可以看出,我们利用utf-8对字节字符串进行解码,可以获得正确的汉字字符串。而值得注意的是,最后一行代码想通过latin-1解码字节字符串,由于字节字符串是通过utf-8编码形成,因此这样解码形成得到的只能是乱码。
希望从这个角度,有助于大家对于获取中文有了更好的理解。
关于Python编程和数据分析更全面的内容,欢迎关注我在CSDN上的专栏《python数据分析编程基础》。
当然还有《机器学习中的数学-全集》系列专栏,欢迎大家阅读,配合食用,效果更佳~
有订阅的问题可咨询微信:zhangyumeng0422
