I have tried:* response.flash="Auswählen"* (German for "select") and I got *
"Ausw%C3%A4hlen"*. Looks like urllib.quote, but why?
And in some other contexts I got "*Auswählen*" as expected. I could not
find any rule.
I am using the trunk from yesterday.
Then I wrote some test functions. I have written the results after each
block:
def flash1():
redirect (URL('flash1a', args=['hello there']))
def flash1a():
response.flash=request.args[0]
return dict(text='done')
Result: *hello_there* (with an underscore in place of the space)
------------------------------------------------------
def flash2():
redirect (URL('flash2a', args=['hello there äöü']))
def flash2a():
response.flash=request.args[0]
return dict(text='done')
Result: *Invalid request*. I thought "args" uses urllib.quote?
------------------------------------------------------
def flash3():
redirect (URL('flash3a', vars=dict(t='hello there äöü')))
def flash3a():
response.flash=request.vars['t']
return dict(text='done')
Result: *hello there äöü* ok!
------------------------------------------------------
import urllib
def flash4():
response.flash='hello there äöü'
return dict(text='done')
Result: *hello there äöü* ok
------------------------------------------------------
def flash4a():
response.flash=urllib.quote('hello there äöü')
return dict(text='done')
Result: *hello%20there%20%C3%A4%C3%B6%C3%BC* ok
------------------------------------------------------
def flash5():
redirect (URL('flash5a', args=[urllib.quote('hello there äöü')]))
def flash5a():
response.flash=urllib.unquote(request.args[0])
return dict(text='done')
Result*: invalid request*
------------------------------------------------------
def flash6():
return dict(load=LOAD('default', 'flash6a.load'))
def flash6a():
response.flash='hello there äöü'
return dict()
Result: nothing!!
------------------------------------------------------
def flash7():
return dict(load=LOAD('default', 'flash7a.load', vars=dict(t='hello
there äöü')))
def flash7a():
response.flash=request.vars['t']
return dict()
Result: nothing!
Some strange results, isn't it?
All functions again if someone wants to try it himself:
def flash1():
redirect (URL('flash1a', args=['hello there']))
def flash1a():
response.flash=request.args[0]
return dict(text='done')
def flash2():
redirect (URL('flash2a', args=['hello there äöü']))
def flash2a():
response.flash=request.args[0]
return dict(text='done')
def flash3():
redirect (URL('flash3a', vars=dict(t='hello there äöü')))
def flash3a():
response.flash=request.vars['t']
return dict(text='done')
def flash4():
response.flash='hello there äöü'
return dict(text='done')
import urllib
def flash4a():
response.flash=urllib.quote('hello there äöü')
return dict(text='done')
def flash5():
redirect (URL('flash5a', args=[urllib.quote('hello there äöü')]))
def flash5a():
response.flash=urllib.unquote(request.args[0])
return dict(text='done')
def flash6():
return dict(load=LOAD('default', 'flash6a.load'))
def flash6a():
response.flash='hello there äöü'
return dict()
def flash7():
return dict(load=LOAD('default', 'flash7a.load', vars=dict(flash='hello
there äöü')))
def flash7a():
response.flash=request.vars.flash
return dict()
Any answers welcome!
Regards, Martin
--