龙卷风 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中定义的规则的复杂性,很难正确解决
我有一个龙卷风应用程序,其中 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中定义的规则的复杂性,很难正确解决