在Python响应中显示非英文字符

3

我是Python的新手,想要获取一个中文网站的内容。我可以得到响应r,但不幸的是,它存在编码/解码问题。也就是说,中文字符不能正确地显示。

import requests
r =requests.get('http://www.example.com')
print (r.encoding)
print (r.content)

上面的代码将编码打印为“ISO-8859-1”。
响应的内容包含以下信息。
<?xml version="1.0" encoding="gb2312"?>

我也看到过类似的东西。
<head>\n<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>

中文字符显示为类似于\xbe\xc9\xbd\xf0\xc9\xbd的形式,实际上应该是三个中文字符。请问有什么方法可以正确地显示这些字符?

我正在尝试在Python 3.4.2中解决这个问题。

2个回答

1

抱歉,我不知道您的确切编码类型,但通常使用以下内容就足够了:

r.content.decode('gh2312')

或者

r.content.decode('ISO-8859-1')

据我所知。请尝试一下。

0

另一种方法是直接设置响应的解码方式。

import requests

response = requests.get('https://yourwebsite.com')
response.encoding = "gb2312"
txt = response.text

如今,utf8已成为中文网站最流行的编码方式,请求响应应通过检查页面编码正确设置。我在一篇文章中总结了解决方案Python Requests库中的中文编码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接