记录一次中文乱码问题的解决


某次使用vscode写了一个爬虫后,采用的基础的urllib库,但是爬下来的中文数据 是乱码状态,网页的charset设置的编码是UTF-8,我写的也是用的UTF-8解码,但是print输出就是中文乱码。在换成pycharm和idle和发现都是正常的中文输出,这才发现应该是使用了vscode的问题,于是尝试了一下直接把爬下来的数据保存,本打开后也没有乱码。所以尝试了一下设置vscode自动识别编码files.autoGuessEncoding":true,然而还是没有解决,于是又尝试打开一个本地中文txt,打开之后果然乱码,但是可以设置为GB 2313z中文显示出来,最后的最后,终于找到了解决办法,直接添加一个win10的系统环境变量得到了解决,vscode print出来的中文也没有乱码了。

key:PYTHONIOENCODING value:UTF8

基本的爬虫乱码问题解决
(1)设置解码方式和网页charset的编码方式一致。
(2)可能页面采用了gzip的网页压缩格式,可以先查看输出的编码方式:

html=requests.get(url) print(html.encoding)

然后查看请求协议头看是否被压缩可以进行一下编码转化先encode编码,将实际编码编码成unicode,再decode解码,将unicode解码成utf-8,[contact-form-7 id="79" title="联系表单"]


It is never too late to learn