在采用 return jsonify(data) 返回内容中含有中文时,前端接收数据出现中文乱码问题,乱码格式如下(仅中文为ASCII码):

故在此记录下该问题的解决方式,以作后期参考:

  1. 在定义Flask app时,指定JSON_AS_ASCII的参数设置为False,阻止jsonify将json内容转为ASCII进行返回(已生效)
    app = Flask(__name__)
    app.config.from_object(__name__)
    app.config["JSON_AS_ASCII"] = False
  2. 采用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的方式

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐