瓶子将邮件请求转换为unicode

时间:2014-08-24 19:32:33

标签: python unicode bottle

我有一个服务器作为应用程序,所有工作正常,除非我保存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”。

这可能是一个简单的问题,但我认为我还没有喝足够的咖啡。

1 个答案:

答案 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而我不知道怎么做?