[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