Flask RESTX-响应正文中的阿拉伯语文本



我正在运行一个带有swagger、flask restx 的rest api

然而,我的问题是在招摇过市的UI中(http://127.0.0.1:5000/?(在测试端点时,响应正文中的阿拉伯文本将作为交换字符\u0645\u0635\u0646\u0648\u0639 \u0645返回使用邮递员时出现相同问题

当使用高级文本请求包或在浏览器中简单输入URL时(我有一个jsonify扩展(不会出现问题

这是我的代码的缩短版本

@app.route('/products')
def products():
# logic with database
return JSONEncoder().encode(products)
name_space = api.namespace('product', description='Product API')
@name_space.route("/")
class ProductClass(Resource):
def get(self):
return make_response(products())

当我调用端点products时,它工作正常,但当我调用product时,它不工作。

在Python中定义以下函数:

def inverse_repr(a_string):
a_string = repr(a_string)
a_string = a_string.replace('\\','\')
# encode/decode stuff
return a_string.strip("'").encode().decode("unicode-escape")

示例用法:

print( inverse_repr('\u0645\u0635\u0646\u0648\u0639 \u0645') )
print( inverse_repr('\x43\x69\x74\x72\x6f\xeb\x6e') )
print( inverse_repr('d\xE9j\xE0 vu') )
print( inverse_repr('\U0001F5B6 Printer Icon') )

结果:

مصنوع م
Citroën
déjà vu
🖶 Printer Icon

最新更新