【发布时间】:2016-05-30 17:34:19
【问题描述】:
如何防止 Flask 将拉丁字符作为 Unicode 表示返回?例如,对于这类字符:http://graphemica.com/%C3%91
我的 FlaskApp 在 MySQL 数据库中执行 SELECT,逐行检索,将它们添加到列表中,将列表存储到字典中,最后返回 JSON。
FlaskAPP
@app.route("/json")
def show_json():
avisos_dict = {}
records_list = []
query = "SELECT * FROM tjs_stage.avisos"
cur.execute(query)
con.commit()
records = cur.fetchall()
for row in records:
records_list.append(row)
avisos_dict['avisos'] = records_list
return jsonify(avisos_dict)
MySQL 数据
mysql> SELECT * FROM tjs_stage.avisos; +----+----------+---------- ------------+---------------------+---------------- -----+ |身份证 |标题 |阿维索 |创作 |修改 | +----+----------+---------- ------------+---------------------+---------------- -----+ | 1 | PRIMERO AVISO | MAÑANA EMPIEZAM VACACIONES | 2016-04-06 18:12:52 | 2016-04-06 18:12:52 | | 64 | Aviso de Vacaciones | Mañana empezam las vacaciones! | 2016-05-30 17:19:17 | 2016-05-30 17:19:17 | +----+----------+---------- ------------+---------------------+---------------- -----+ 2 行(0.00 秒)
JSON
有人知道怎么解决吗?
提前致谢 ;)
【问题讨论】:
-
生成的 JSON 不仅合法,而且比未转义的版本更不容易受到编码问题的影响。 JSON 是 UTF-8,但并非所有软件都能正确处理它。
-
@Kevin:JSON 是一种 text 格式。它是根据文本(Unicode 代码点序列)定义的。它与可用于将文本编码为字节序列的utf-8 字符编码无关。 utf-8 很常见,它是 application/json content-type 的默认值,用于通过 Internet 传输 json 文本,但没有什么能阻止您在本地磁盘上使用您喜欢的任何字符编码保存 json 文本。
标签: python json unicode flask iso-8859-1