【问题标题】:bottle convert post request to unicode将 post 请求转换为 unicode
【发布时间】:2014-08-25 04:40:30
【问题描述】:

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

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

【问题讨论】:

    标签: python unicode bottle


    【解决方案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 而我不知道怎么做?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2018-11-22
      • 2015-04-16
      相关资源
      最近更新 更多