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

qgelzfjb  于 2023-05-05  发布在  Python
关注(0)|答案(2)|浏览(202)

我是一个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中做到这一点。

gz5pxeao

gz5pxeao1#

对不起,我不知道你的确切编码类型,但通常它足够用途:

r.content.decode('gh2312')

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

据我所知。请给予一下。

whitzsjs

whitzsjs2#

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

import requests

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

目前,utf8已成为中国网站最流行的编码,通过检查页面的编码,可以正确设置请求响应。我在一篇文章Chinese Encoding with Python Requests Library中总结了解决方案。

相关问题