龙卷风url正则表达式unicode字符

时间:2015-07-13 12:58:38

标签: python regex unicode tornado

我有一个龙卷风应用程序,其中url类似于

https://example.com/my/path/❤

龙卷风中我有

handlers = [
        (r'/my/path/❤$', MyHandler),
]

但它与路径不匹配。

我试了tornado.escape.utf8()tornado.escape.url_escape()而没有运气。

如果我将%E2%9D%A4替换为的编码字符串,那么它是否可以使其工作而不将其替换为编码字符串?

1 个答案:

答案 0 :(得分:2)

不,龙卷风的路由引擎目前适用于网址的编码形式,因此在路由中使用非ascii字符是不切实际的。 (如果作为路径的可变部分捕获,它们工作正常,因此r'/my/path/(.*)'将正确捕获并将其作为处理程序的第一个参数传递。

处理unicode路由是longstanding feature request,但由于RFC 3987中定义的规则的复杂性,很难正确解决。