网页源码的编码与解码

1. 函数 urlencode()的编码设置方法

 

urlencode(search,encoding='gb2312')   search:字典,不废话了。encoding:+要把编码方式改成的编码方式

 

2.get()返回的response对象设置编码方式

 res=requests.get(url)   res.encoding="gb2312"   把编码方式改变成‘国标2312’

 

3.字符串改变编码形式:

    字符串在Python内部的表示是unicode编码,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘utf-8’),表示将unicode编码的字符串str2转换成utf-8编码。

4.编码和译码: 

字符串在Python内部的表示是unicode编码,而在Python3中文件的传输与存储不能是Unicode编码。在传输的过程中,需要将字符串调用decode()将字符串转换成字节串便于传输,然后在接收端需要再将字节串调用encode()将字节串转换成文本串。

requests.get(url)返回的text文本-内部中文乱码:(将字节串转变成):content.decode(参数:要解码成的编码格式,注意和编码用的编码格式要一致)。。。。  #requests.get(url).content 返回网页源码的字节串形式

出现中文乱码的原因:编码和译码时设置的编码格式不一样,如utf-8用3个字节表示一个字符,gbk用2个字节表示一个字符。如果先用encode('utf-8')转成字节串,再用decode('gbk')再转成字符串就会出现乱码。。。。,各编码方式的字节串是不会相互是别的。
 

4.在网页源代码的头部一般有写网页代码的编码方式,即charset.

5.各编码方式的编码位数:

ASCII一个英文字符:8位,一个字节
Unicode一个英文字符:32位,4个字节
Unicode一个中文字符:32位,4个字节
UTF-8一个英文字符:8位,1个字节
UTF-8一个中文字符:24位,3个字节
GBK一个英文字符:8位,一个字节
GBK一个中文字符:16位,2个字节

 

  从上面的表格也可以看出来,Unicode编码太占空间了,所以传输和存储的时候不用Unicode编码方式。

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值