Python中HTTP请求响应中文字符编码问题

    2019年08月16日     编程语言     Python   字符编码        字数:1318

最近在工作中需要用Python做大量的数据分析,在这些数据中,很大一部分都是中文。在处理过程中,中文编码处理花了一些时间。这里做一个记录。

首先是在Python脚本内的中文编码处理,这个网络上有很多教程和解决方案了,这里不再赘述。推荐参考:

  1. 字符编码笔记:ASCII,Unicode 和 UTF-8 By 阮一峰
  2. 解决python的中文字符编码问题 By imlogm

这里重点说一下,在Python中,通过HTTP请求到数据时,如何得到正确的编码后的结果。

使用Python发起一个Http请求时,得到的结果是乱码。这种情况和Response的编码方式有关。

例如Http请求:

# -*- coding: utf-8 -*-
import requests
import json
headers = {'content-type': 'application/json'}
URL = 'xxxx'
r = requests.post(url = URL, data = json.dumps(p), headers=headers)
# 查看Response的编码方式
print r.encoding #输出:ISO-8859-1
# 指定Response的编码方式
r.encoding=utf-8
res = r.json()

查看Response的编码方式:r.encoding:输出:ISO-8859-1 指定Response的编码方式:r.encoding=utf-8

通过上面的处理,就可以得到编码方式为UTF-8且返回格式为json字符串的结果数据。

文章标题:Python中HTTP请求响应中文字符编码问题

文章字数:1318

发布时间:2019年08月16日

原始链接: https://lanffy.github.io/2019/08/16/Python-HTTP-Body-Character-Encoding

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。