无法解码作为 URL 参数传递的 "devanagari text"

Unable to decode "devanagari text" passed as URL param

我的 Python Flask 应用程序无法解码我从邮递员那里作为 urlparam 传递的梵文文本,例如:“सिंगापूर”。如果我看到英文文本,它会处理得很好。

我的 PostMan 查询: 获取 http://localhost:5000/getSimilarWord/सिंगापूर

from flask import Flask
from flask_restful import Resource, Api

class DevnagriText(Resource):
    def get(self, textInput):
        print("parsed String is :",textInput)
        return {'text': textInput} 

api.add_resource(DevnagriText, '/getWord/<string:textInput>')

if __name__ == '__main__':
    app.run(debug=True)

我在控制台上得到的输出是

{
    "text": "\u00818"
}

而不是

{
    "text": "सिंगापूर"
}

您需要防止响应强制使用 ASCII:app.config['JSON_AS_ASCII'] = False

所以在你的例子中:


from flask import jsonify, Flask
from flask_restful import Resource, Api

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
api = Api(app)

class DevnagriText(Resource):
    def get(self, textInput):
        print("parsed String is :",textInput)
        return jsonify(text=textInput)

api.add_resource(DevnagriText, '/getWord/<string:textInput>')

if __name__ == '__main__':
    app.run(debug=True)

但是,这并不重要,如果它被读入 Python 或 JavaScript.

,它们将以相同的方式被解释