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

Tornado url regex unicode chars

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

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

在龙卷风中我有

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

但它与路径不匹配。

我尝试了 tornado.escape.utf8()tornado.escape.url_escape(),但没有成功。

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

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

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