首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全局处理来自webob的unicode解码错误

全局处理来自webob的unicode解码错误
EN

Stack Overflow用户
提问于 2013-03-29 05:49:50
回答 1查看 305关注 0票数 0

我有一个在WSGI上编写的大型web系统,它使用webob访问表单数据(不涉及框架)。随机地,我们将从浏览器(或机器人)获得未处理的UnicodeDecodeError异常,在查询字符串或POST数据中发送无法解码的转义序列。我正在寻找一个好的默认行为,不涉及我收到未处理的异常电子邮件。

我的第一个想法是编写一个站点范围的中间件,它通过一个异常处理程序访问webob请求对象的参数,该异常处理程序返回400 (或者可能剥离无法解码的数据)。

其他系统/框架如何处理此问题?

EN

回答 1

Stack Overflow用户

发布于 2013-04-19 00:04:42

经过深入研究,我发现应该在一开始就对请求使用.decode()方法来创建一个解码的请求。如果使用UnicodeDecodeError失败,我会发回400。例如:

代码语言:javascript
复制
    try:
        req = webob.Request(environ).decode('ascii')
    except UnicodeDecodeError, e:
        return webob.Response(status=400, body="""
            <h1>Bad Request</h1>
            <p>We apologize. Your request includes characters the server
            cannot understand. Please click the back button and
            check your request for non-standard characters like accent
            marks and copy-paste data from word processing
            programs.</p>""")(environ, start_response)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15692781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档