[Zope3-checkins] SVN: Zope3/trunk/src/zope/app/apidoc/utilitymodule/ Fixed utility module to work well with any type of utility name.

Stephan Richter srichter at cosmos.phy.tufts.edu
Sat Oct 29 09:33:54 EDT 2005


On Saturday 29 October 2005 09:01, Bjorn Tillenius wrote:
> Maybe I've missed some aspect of the problem, but it seems strange that
> you chose to use BASE64, thus producing very cryptic URLs, which aren't
> readable at all. If the problem is that you want to use the names in
> URLs, why not use urllib.quote() whenever you construct a URL?
>
> Since ILocation.__name__ is a TextLine, thus allow the names to contain
> almost any characters, I can name my utility:
>
>     "Is this name url safe??? Let's see."
>
> Now, let's encode it with BASE64:
>
>     >>> "Is this name url safe??? Let's see.".encode('base64')
>     'SXMgdGhpcyBuYW1lIHVybCBzYWZlPz8/IExldCdzIHNlZS4=\n'
>
> As you can see, there's a '/' character in there, thus the traverser
> will think that the utility name is 'SXMgdGhpcyBuYW1lIHVybCBzYWZlPz8'.

Thank you very much for pointing this out!

> So it seems like you have to use urllib.quote() anyway.

This does not work. I tried urllib.quote_plus() first, but some browsers 
decode this output before sending it to the browser. so it is no good. I 
could mask the quoted string, but it seemed dangerous too.

> I haven't looked into the problem you're trying to solve, though, so
> maybe I'm missing something. Just wanted to raise a possible issue. And
> I dislike cryptic URLs. ;)

I hate them too! Very much! If I can get a better solution, please let me 
know. Basically, I have random unicode strings and need to make a URL-safe 
representation.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training


More information about the Zope3-Checkins mailing list