python2.7的中文出现乱码怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python2.7的中文出现乱码怎么解决相关的知识,希望对你有一定的参考价值。

已经不止一次遇到这种问题了,我在程序的开头有加# -*- coding: utf-8 -*-
但运行之后还是乱码,比如下面这段
import requests
from bs4 import BeautifulSoup
url='ht百度tp://连这个都吞music.bai我服du.com/tag/%E6%B5%81%E8%A1%8C'
headers = 'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (Khtml, like Gecko) Chrome/22.0.1207.1 Safari/537.1"
html=requests.get(url,headers=headers)
Soup=BeautifulSoup(html.text,'lxml')
afind=Soup.find_all('span',class_="song-title")
for a in afind:
b=a.find('a')
webs=b['href']
title=b['title']
print(webs+title)

我有自己看了下,title这个变量全是u'\xe.....'之类的的东西,我知道引号里面的东西print出来后就是正确的中文,可是程序似乎print的时候总是会把前面那个u'也算进去然后打出一堆乱码,怎么才能解决这个问题?

参考技术A 是不是原网页源码里面就是那种格式?
网页源码的格式是utf-8吗?
html.text打印出来乱不乱码?追问

html.text没乱码,原网页是百度音乐的网页,应该是utf-8,但print出来有问题,如果方便的话可以运行一下看下结果,结果是一些乱码,怎么才能转成中文?

追答

首先我不知道你要爬什么东西,我试了一下print出来并没有乱码。可能是你没改网页的编码所以输出才乱码,原网页的编码确实不是utf-8。你在使用requests的时候很方便就可以输出观察的啊。你在用requests的时候先print一下encoding,就像print(res.encoding)(我用的是3),可以看到它的编码是ISO-8859-1,print出来有许多乱码。然后改掉原编码,(res.encoding="utf-8"),再试一次就正常了。不过我还是不知道你要爬什么,其他部分自己尝试。

以上是关于python2.7的中文出现乱码怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

python2.7解决输出中文乱码问题

关于python2.7从数据库读取中文显示乱码的问题解决

python2.7下使用logging模块记录日志到终端显示乱码问题解决

win10+python3.5,使用requests抓取信息遇到chunked乱码的诡异问题。python2.7则不乱码

处理Python2.7读写文件中的中文乱码问题

loadrunner中出现中文乱码该怎么解决