铁心兰 2025-01-28 13:11 采纳率: 71.4%
浏览 9
已结题

python编码问题


 response = self.session.post(skip_url, data=body, headers=headers)
         # 处理响应  
        if response.status_code == 200:  
            print(response.text)  

因为网站是gbk编码,得到的结果是下图这样的乱码,应该怎样修改才能正确显示汉字内容?

img

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2025-01-28 13:15
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    在处理网页内容时,如果服务器返回的内容不是UTF-8编码而是GBK编码,直接使用response.text可能会导致乱码问题。你需要显式地指定编码方式,以确保正确解码文本。

    以下是解决该问题的步骤:

    1. 设置正确的编码:在获取响应后,将响应的编码设置为GBK。
    2. 使用正确的编码解码:使用设置好的编码来解码响应内容。

    下面是修改后的代码示例:

    import requests
    
    # 创建会话对象
    self.session = requests.Session()
    
    # 发送POST请求
    response = self.session.post(skip_url, data=body, headers=headers)
    
    # 设置响应的编码为GBK
    response.encoding = 'gbk'
    
    # 处理响应
    if response.status_code == 200:
        # 使用GBK编码解码响应内容
        print(response.text)
    

    解释

    1. 创建会话对象self.session = requests.Session() 用于保持会话状态,例如cookies等。
    2. 发送POST请求response = self.session.post(skip_url, data=body, headers=headers) 发送HTTP POST请求。
    3. 设置响应编码response.encoding = 'gbk' 显式地将响应内容的编码设置为GBK。
    4. 处理响应if response.status_code == 200: 检查请求是否成功。如果是200,使用GBK编码解码响应内容并打印。

    通过这种方式,你可以确保从服务器接收到的GBK编码的文本能够被正确解码和显示。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月5日
  • 已采纳回答 1月28日
  • 创建了问题 1月28日