2015-07-13 39 views
1

我有一個龍捲風的應用程序,其中URL是一樣的東西龍捲風URL的正則表達式的unicode字符

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

在龍捲風我

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

,但它不與路徑匹配。我試過tornado.escape.utf8()tornado.escape.url_escape()沒有運氣。

如果我替換%E2%9D%A4這是的編碼字符串,那麼它的工作原理是否可以使其工作,而無需將其替換爲編碼的字符串?

回答

2

不,龍捲風的路由引擎目前在url的編碼形式上工作,所以在路由中使用非ascii字符是不切實際的。 (如果作爲路徑的可變部分捕獲,它們工作正常,所以r'/my/path/(.*)'將正確捕獲並將其作爲第一個參數傳遞給處理程序)。

處理Unicode的路線是longstanding feature request,但它是很難正確地解決,因爲規則的RFC定義的複雜性3987.

+1

感謝本,我希望不久的龍捲風得到這種支持, 喜歡的東西 處理器= [ (r'/ my/path /❤$',MyHandler,unicode = True), ] – Maddy