python中的编码问题 - 草稿

python中的编码是一个很困扰人的问题,只要弄清楚三个部分,编码问题就迎刃而解。
我们把全部情况分为三个部分:io读取设备的编码,python本地环境的编码,io写入设备的编码。其中,io写入设备,包括文件,数据库,网络流等,我们从这里读取数据进行处理;python本地环境是我们设置的本地编码,我们在这个环境下进行处理;io写入设备和io读取设备一样,只不过数据流向不同而已。
假如我们有一个gbk编码的json文件,本地环境为utf8,如果我们直接
with open("文件名")as f的话,这时候默认的读取方式就是用utf8格式把gbk读进来,当然会出错。但是我们open("文件名",encoding="gbk")后,我们就可以正确读进来。
同理,如果我们想把数据写入一个地方,比如数据库,数据库的存储格式为utf8,则我们存储的时候要 内容.encode(encoding="utf-8"),这样才能使输出的编码和数据库一致。
只要理解了在不同地方用的编码不一样,python的编码问题就迎刃而解了。

你可能感兴趣的:(python中的编码问题 - 草稿)