python中编码格式的转换

本文详细介绍了如何在Python中实现不同平台间的编码格式转换,包括Windows的GBK和Linux的UTF-8,以及如何处理requests库获取的响应数据。通过实例演示了使用encode和decode方法进行编码转换的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编码格式:
Windows为GBK的编码格式;
linux为utf-8编码;
而通过requests.get()爬取网站得到的response,response.text是Unicode编码,response.content是byte字符串;

那么python怎么在不同的平台之间转换编码格式呢?
python提供的方法很简单,就是encode,decode。非常有效。

使用方法:
第一步:根据平台的编码格式解码,就是让python解释器认识数据
第二步:将解码得到的数据编码按目标平台的编码格式编码。

以python 2.7为例:
例: python2.7字符串是Unicode编码,所以解释器只认识Unicode编码格式的数据

response.text刚好是Unicode编码,所以解释器是认识数据的。所以第一步可以直接省略;
第二步:转换为GBK编码
content = response.content.encode(“GBK”)
如果现在在解释器中打印content,是打不开的,因为解释器会按Unicode编码去打印数据,自然会出现错误;
但现在,如果把content写入文件,文件在Windows中是可以打开的。

如果是linux平台,那么第二步编码为utf-8就行了。

如果是键盘录入的数据呢
在windows平台,使用python2.7, 录入的中文会以每个中文2个字节的长度录入,格式为byte,也就是说,并不是unicode,解释器还不认识录入的数据。那么就要告诉解释器,数据的编码格式。所以要按windows的录入格式解码,如录入s = “黄河”
那么就应该这样解码:s = s.decode(“GBK”).现在s解释器认识了。解释器会把它按Unicode解释。解释器认识数据后,就可以把它转变为 任何你想要转变的格式了。

python 3是utf-8编码,原理都是一样的。先解码让解释器认识,再编码为自己想要的格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值