我有一个服务器作为应用程序,所有工作正常,除非我保存ajax表单。如果我从python脚本保存 - 使用正确的输入 - 数据作为unicode返回。但来自js的数据很奇怪:在管道上应该只有字节(这是http知道的唯一数据类型),但是瓶子显示str(它不是utf-8)而且我无法编码/解码以获得正确的值。在js方面,我尝试使用jquery和form.serialise,适用于其他框架。
@post('/agt/save')
def saveagt():
a = Agent({x: request.forms.get(x) for x in request.forms})
print(a.nume, a.nume.encode())
return {'ret': ags.add(a)}
......像“ţânţar”这样的名字变成了“ÈânÈar”。
这可能是一个简单的问题,但我认为我还没有喝足够的咖啡。
答案 0 :(得分:1)
如果有人好奇,瓶子不会处理核心核心。
所以urllib.parse.unquote(request.body.read().decode())
解决了问题。
或
d = urllib.parse.parse_qs(request.body.read().decode())
a = Agent({x: d[x][0] for x in d})
就我而言。
这是瓶子的错误吗?或者我应该告诉他解码URI而我不知道怎么做?