[Zope-dev] redirect burps on unicode URLs

Wichert Akkerman wichert at wiggy.net
Sun Feb 28 11:05:51 EST 2010


On 2010-2-26 18:25, Tres Seaver wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Wichert Akkerman wrote:
>> On 2/25/10 17:08 , Tres Seaver wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Adam GROSZER wrote:
>>>> Hello,
>>>>
>>>> Looks like zope.publisher burps on unicode URL which contain non-ascii
>>>> chars. This is from a KGS 3.4 application, but looking at the source
>>>> it still seems to have the same problems.
>>>>
>>>> opinions?
>>>>
>>>> ...
>>>>       self.request.response.redirect(url)
>>>>     File "d:\home\.buildout\eggs\zope.publisher-3.4.6-py2.5.egg\zope\publisher\browser.py", line
>>>> 729, in redirect
>>>>       return super(BrowserResponse, self).redirect(location, status)
>>>>     File "d:\home\.buildout\eggs\zope.publisher-3.4.6-py2.5.egg\zope\publisher\http.py", line 882,
>>>> in redirect
>>>>       self.setHeader('Location', location)
>>>>     File "d:\home\.buildout\eggs\zope.publisher-3.4.6-py2.5.egg\zope\publisher\http.py", line 676,
>>>> in setHeader
>>>>       value = str(value)
>>>> UnicodeEncodeError: 'ascii' codec can't encode character u'\xd6' in position 71: ordinal not in
>>>> range(128)
>>> Two issues:
>>>
>>> - - Technically there is no such thing as a "unicode URL":  URLs are
>>>     always ASCII, with other characters encoded[1].  IRIs and IRLs are
>>>     a different thing altogether.
>>
>> I see this as naming confusion. In this day and age every URL is
>> effectively an IRI, and every modern browser treats them that way. If
>> you look at http://jp.wikipedia.org/ you can see how well that works. I
>> do not see why zope.publisher should not be able to support that
>> transparently. Other systems such as Routes and repoze.bfg do.
>
> Browseers *display* what looks like unicode to the user, but they *pass*
> URL-encoded ASCII bytes to the server.

But why can't zope.publisher do that conversion? It don't see the point 
in requiring all the thousands of routines that call those functions to 
do that conversion when zope.publisher can easily do so itself.

Wichert.

-- 
Wichert Akkerman <wichert at wiggy.net>   It is simple to make things.
http://www.wiggy.net/                  It is hard to make things simple.


More information about the Zope-Dev mailing list