废话不多说,直接开讲
'稳宒编码问题
最近用python获取网页内容
竟然出现这个
其实是站长故意设置ascii编码
print(‘实际上也就是ascii编码:’,ascii(‘稳宒))
#coding=utf-8
1.1、ascii,用1个字节表示。
1.2、UTF-8,用1个至三个字节表示,表示ascii码时只占用1个字节,ascii编码是UTF-8的子集。
最早出现的“密码本”美国人发明叫做ASCII,
ascii只能表示数字、英文字母和一些特殊符号,不能表示汉字
unicode和utf-8都可以表示汉字,unicode是固定长度,utf-8是可变长度
内存中存储方式一般为unicode,而磁盘文件存储方式一般为utf-8,因为utf-8可以节约存储空间
直接解决问题
可使用encode('raw_unicode_escape')将此str转化为bytes, 再decode为str
# -*- coding:utf-8 -*-
import base64
from importlib import reload
from xml import etree
import requests
import sys
reload(sys)
url = 'http://caibaojian.com/fw/87286.html'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
da = requests.get(url,headers=headers).text
# print(da)
ss = da.encode('raw_unicode_escape') #强制转化unicode编码,将此str转化为bytes
sss = ss.decode() #解码
print(sss)
乱码问题解决了