还在为Python中文乱码烦恼,老司机给你讲讲!

Python3中有两种数据类型(注意是数据类型而不是编码方式):str和bytes。str类型存储unicode数据,用于向人展示数据,既我们所说的明文。bytes类型用于存储字节数据,用于计算机存储和传输。

明文(str)和字节(bytes)数据之间的转换关系就是编码和解码,从str到bytes叫编码,用encode命令,从bytes到str叫解码,用decode命令。需要注意的是,str数据无法进一步decode,bytes数据也无法进一步encode。

对于一组字节数据,我们可以先将其解码为unicode数据,再使用其他的编码格式转换为相应的字节数据。

这里需要提醒一点,有人在得到一份乱码数据(str)后试图先对其编码(比如utf-8),再以另外一种方式解码(比如GB2312),这样肯定是行不通的,原因刚才我们已经讲过——编码解码要一致,解决中文乱码的正确环节应该在它出现之前。

From: https://www.sohu.com/a/239210158_752099

猜你喜欢

转载自blog.csdn.net/tony2278/article/details/82951342
今日推荐