Thanks. It worked.
I understand that this exception happening because of the web.ctx.path is an unicode string and the % operator is converting the "format" string to unicode using the defatult encode. Is this right? On Thursday, November 1, 2012 11:57:27 AM UTC-2, Andrey Kuzmin wrote: > > Have you tried marking your string as unicode? > > msg = *u*'Não encontrado: %s' % web.ctx.path > > On Thursday, November 1, 2012 4:32:57 PM UTC+4, Carlos Alberto Costa > Beppler wrote: >> >> I´m having an very strange UnicodeDecodeError on the following program. >> >> The most strange is that before start the application the same formatting >> instruction works, it raises the error only inside the GET (or any other >> controller method). >> >> The test program is: >> ============================== >> #!/usr/bin/python >> # -*- coding: utf-8 -*- >> >> import os >> import sys >> import web >> >> class Index(object): >> def GET(self, id = None): >> if id: >> # this raises UnicodeDecodeError >> msg = 'Não encontrado: %s' % web.ctx.path >> raise web.notfound(msg) >> return 'Encontrei' >> >> urls = ( >> '/(.*)', 'Index' >> ) >> >> application = web.application(urls, globals()) >> >> # this works >> msg = 'Não encontrado: %s' % '/test' >> web.debug(msg) >> >> if __name__=='__main__': >> application.run() >> ============================== >> >> >> The log message generated on server is: >> ============================== >> beppler@squeeze:~/site$ python test.py >> 'N\xc3\xa3o encontrado: /test' >> http://0.0.0.0:8080/ >> 'N\xc3\xa3o encontrado: /test' >> Traceback (most recent call last): >> File "/home/beppler/Projects/elco/src/web/application.py", line 239, in >> process >> return self.handle() >> File "/home/beppler/Projects/elco/src/web/application.py", line 230, in >> handle >> return self._delegate(fn, self.fvars, args) >> File "/home/beppler/Projects/elco/src/web/application.py", line 462, in >> _delegate >> return handle_class(cls) >> File "/home/beppler/Projects/elco/src/web/application.py", line 438, in >> handle_class >> return tocall(*args) >> File "/home/beppler/Projects/elco/src/site/test.py", line 17, in GET >> msg = 'Não encontrado: %s' % web.ctx.path >> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: >> ordinal not in range(128) >> ============================== >> >> -- You received this message because you are subscribed to the Google Groups "web.py" group. To view this discussion on the web visit https://groups.google.com/d/msg/webpy/-/_1g8QLG10R8J. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/webpy?hl=en.
