-----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.

- - Headers in responses must *not* be Unicode.

Your application needs to make the URL header-safe before calling
redirect, likely by using 'urlencode'.


[1] http://tools.ietf.org/html/rfc1738#section-2.2



Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          [email protected]
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkuGoI4ACgkQ+gerLs4ltQ5zGACfYBpr0A3z4pnH6qdS/Ku7irjO
Lt4AoIWHrsO3gN6AioJfbjbv1us/mZQf
=5r8C
-----END PGP SIGNATURE-----

_______________________________________________
Zope-Dev maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )

Reply via email to