gpt4 book ai didi

android - 如何在 POST 后以正确的编码在 Flask 中返回 json

转载 作者:行者123 更新时间:2023-11-29 11:27:44 25 4
gpt4 key购买 nike

我正在 flask 中编写一个网络应用程序。它从树莓派上的 MySQL 服务器获取一个表。

与 postman 初步测试

  • 我在创建表时将 MySQL Workbench 中的编码设置为 utf-8 bin

  • 我在使用MySQLdb.connect(charset=utf-8)时在MySQLdb中设置了charset=utf8

原始 json 如下所示。

{
"Menu": [
[
1,
"ΣΑΛΑΤΑ",
"ΚΡΗΤΙΚΗ",
5.5
],
[
2,
"ΣΑΛΑΤΑ",
"ΦΑΚΗ",
6
]]
}

这是返回json(POSTMAN)

{
"Menu": [
[
1,
"ΣΑΛΑΤΑ",
"ΚΡΗΤΙΚΗ",
5.5
],
[
2,
"ΣΑΛΑΤΑ",
"ΦΑΚΗ",
6
]]
}

到目前为止,Postman 运行得很好

现在当我想在网页上打印它时,它显示如下:

{
"Menu": [
[
1,
"\u03a3\u0391\u039b\u0391\u03a4\u0391",
"\u039a\u03a1\u0397\u03a4\u0399\u039a\u0397",
5.5
],
[
2,
"\u03a3\u0391\u039b\u0391\u03a4\u0391",
"\u03a6\u0391\u039a\u0397",
6.0
]
]
}

当我从 Android 应用程序发布同样的问题时。

返回我正在使用jsonify的json。

最佳答案

这是有效的 JSON,并对 unicode 字符进行了转义,以便该值是 ASCII。

如果您实际在 JavaScript 中解析 JSON,您仍然会得到正确的值。假设您使用 AJAX 请求调用端点,您将使用 JSON.parse 在回调中加载数据。一些 AJAX 库可以为您处理这个问题。

var parsed_data = JSON.parse(data);

您可以通过禁用 JSON_AS_ASCII 来阻止 jsonify 将所有内容转义为 ASCII。您应该避免这样做,因为这可能会导致响应中出现无效字符。

app.config['JSON_AS_ASCII'] = False

最好保留数据原样并通过 JavaScript 使用它。

关于android - 如何在 POST 后以正确的编码在 Flask 中返回 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37909617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com