经过各位高手前几天指点,
可以确认 http 服务器的通信过程没有指明编码,
网页内容里虽然指定了 content="text/html; charset=utf-8",但这个不能影响到 requests 判断。。
被 requests 认为是"ISO-8859-1"了
r = requests.get(link)
print(r..encoding) # <- ISO-8859-1
print(r.apparent_encoding) # <- UTF-8-SIG
r.encoding = 'UTF-8-SIG'
print(r.text) # <- 不再报编码错误,能正确输出
retrun r.text # 从函数里把 html 文本送出去
# 函数外
htmlString = reguestGeturl(urllink)
for i in BeautifulSoup(htmlString ,'lxml').findAll('td'):
print(i)
这时候,又有编码错误了。。。
print(i)
UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 282: illegal multibyte sequence
为什么还会有\xa0 呢,处理出来的 string,已经没有\xa0 才对呀
望各位高手指出问题所在,谢谢解答!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.