在采用 return jsonify(data) 返回内容中含有中文时,前端接收数据出现中文乱码问题,乱码格式如下(仅中文为ASCII码):
故在此记录下该问题的解决方式,以作后期参考:
- 在定义Flask app时,指定JSON_AS_ASCII的参数设置为False,阻止jsonify将json内容转为ASCII进行返回(已生效)
app = Flask(__name__) app.config.from_object(__name__) app.config["JSON_AS_ASCII"] = False
- 采用Response进行返回,在Response的Headers中指定Content-Type为application/json,并指定字符集charset=UTF8
response = make_response(jsonify(RunUiTests(session["username"]).execCase(id))) response.headers["Content-Type"] = "application/json;charset=UTF-8" return response
以上两种解决方式,若采用第一种设置后,仍为乱码,则不能使用return jsonify的方式,必须使用第二种返回Response的方式