无法解码作为URL参数传递的“ devanagari文本”

问题描述 投票:1回答:1

我的Python Flask应用程序无法解码devanagari文本,例如:我从邮递员作为urlparam传递的devanagari文本。如果我感觉到英文文本,它会很好地处理。

我的PostMan查询:GET 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": "सिंगापूर"
}
python-3.x flask character-encoding flask-restful urldecode
1个回答
1
投票

您需要防止响应强制使用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,则所有解释都将以相同的方式进行。

© www.soinside.com 2019 - 2024. All rights reserved.