<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Flask on kamuszhou&#39;s blog</title>
    <link>https://ykyi.net/tags/flask/</link>
    <description>Recent content in Flask on kamuszhou&#39;s blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Mon, 03 Dec 2018 11:41:55 +0000</lastBuildDate>
    <atom:link href="https://ykyi.net/tags/flask/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>flask框架的回复中显示中文utf8字符，而不是unicode-escape字符串</title>
      <link>https://ykyi.net/?p=1565/</link>
      <pubDate>Mon, 03 Dec 2018 11:41:55 +0000</pubDate>
      <guid>https://ykyi.net/?p=1565/</guid>
      <description>&lt;p&gt;今天在用flask框架写http服务的时候，发现调用flask的jsonify函数得到的http回复包中的字文是用unicode-escape string表示的。如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;&#34;&gt;u5b57\u5173\u6ce8\u6211\u4eec\uff01
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;有些RESTful工具能够把unicode-escape字符串转成utf8，能够正常显示出中文。但很多编辑器和其它工具只能显示原本的unicode转义字符串，大大妨碍调试。解决方案是用flask的另一个函数：make_response解决这个问题。代码如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-python &#34;&gt;from flask import Flask, jsonify, make_response


def mk_utf8resp(js):
    &#39;&#39;&#39;
    传入一个字典，返回一个json格式的http回复。
    &#39;&#39;&#39;
    resp = make_response(json.dumps(js, ensure_ascii=False))
    resp.headers[&#39;Content-Type&#39;] = &#39;application/json&#39;
    return resp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把jsonify(js)换成mk_utf8resp(js)，问题解决。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
