I should clarify my answer. While I am not sure if raw_args is working as intended or not, and I am looking into this, web2py does not limit your ability to use unicode in URLs. It just asks you to do in a way that is safe.
For example, imagine you want an url like this: http://hostname/wiki/ɸ and your app is called "myapp". What web2py does not like is that you map ɸ as an arg. It is ok to map ɸ as a var. So you can have a rule like: routes_in = [('/wiki/$anything', '/myapp/default/wiki?key=$anything')] and in myapp/controllers/default.py def wiki(): key = request.vars.key # contains "ɸ" .... The rule is that args are automatically validated, vars are not and you must validate them yourself. The purpose of raw_args is not to allow you use unicode in the URL (which can do with the method before) but to loosen up the autovalidation of args and I am not sure it is a good idea. If you use routes, args are defined after routing. Massimo On Saturday, 20 October 2012 05:40:22 UTC-5, Vasile Ermicioi wrote: > > I need unicode urls, so I enabled routes_apps_raw for my app, > and in models I have a file 0.py where I have this code > > if not request.args: > request.args = List(request.raw_args.split('/')) if request.raw_args > else [] > if not request.args: > request.args = List() > > and when going to /app/default/user/login > > I got an error 404 > > it works fine for 1.99.4 but doesn't work with trunk > > if I disable routes_app_raw then it works > > so I propose to enable unicode urls by default, > flask routing supports unicode args and vars > --

