从客户端发送数据(名称字段为encoed' euc-kr'),POST http://127.0.0.1,name =테스트& charset = euc-kr
在服务器(基于flask)中接收数据,但只显示Unicode和断开。
@app.route('/', methods='post'):
def post():
print request.charset #utf-8
print request.url_charset #utf-8
print type(request.form['name']) #unicode
所以我使用Flask.Requsest类的子类来支持charset:
# main.py
class EuckrRequest(Request):
url_charset = 'euc-kr'
charset = 'euc-kr'
app = Flask(__name__, static_url_path='', static_folder='static')
app.request_class=EuckrRequest
如此好,不会破坏显示。但我想根据POST数据中的app.request_class
更改charset
。
如何修改代码? app.request_context?,app.before_request?
答案 0 :(得分:1)
动态更改请求类是错误的方法, 因为请求类很早就以
开始实例化了我建议您进入request.environ
并明确处理来自
答案 1 :(得分:0)
我解决了使用 import urllib
urllib.unquote(request.get_data()).decode('euc-kr')
{{1}}