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