[Zope] utf-8 over xmlrpc with zope2.9
Doyon, Jean-Francois
jdoyon at NRCan.gc.ca
Tue Sep 11 14:09:59 EDT 2007
To be more explicit.
The problem is that the strings received by XML-RPC where the encoding is utf-8 end up internally as unicode u'' strings.
Other strings you're working with internally might not be however.
When you're trying to render a ZPT, if you have a mix of u'' and '' strings, you might end up with such UnicodeDecodeErrors ...
In my case, I make sure I use u'' strnigs everywhere, and set character sets to utf-8 everywhere, and so on.
Basically if needed you can make your whole system utf-8, avoiding the risks of those errors cropping up.
J.F.
-----Original Message-----
From: zope-bounces+jdoyon=nrcan.gc.ca at zope.org [mailto:zope-bounces+jdoyon=nrcan.gc.ca at zope.org] On Behalf Of Doyon, Jean-Francois
Sent: September 11, 2007 14:01
To: Kevin; zope at zope.org
Subject: RE: [Zope] utf-8 over xmlrpc with zope2.9
Should work, I use XML-RPC pretty heavily with utf-8 without much problems.
This error might be occurring because you're mixing unicode and non-unicode strings on the same page.
Send the full traceback and we'll know more ...
J.F.
-----Original Message-----
From: zope-bounces at zope.org [mailto:zope-bounces at zope.org] On Behalf Of Kevin
Sent: September 11, 2007 13:56
To: zope at zope.org
Subject: [Zope] utf-8 over xmlrpc with zope2.9
I am trying to send unicode encoded utf-8 or latin1 strings over xmlrpc to a method in zope. The method in zope tries to decode the string and it seems detects ascii. I then recieve an error that
"UnicodeDecodeError: 'ascii' codec can't decode byte 0xf3 in position 4:
ordinal not in range(128)"
I can re-create this error in a python shell by doing something like:
>>> s = 'helló'
>>> s2 = unicode(s,'ascii')
so after looking at code, I assume this is what is happening instead of >>> s2 = unicode(s,'iso-8859-1')
If I submit to this method from an html form, I have no error and the data is stored perfectly.
I have tried setting the encoding of xmlrpclib.Server to utf-8 and
latin1(iso-8859-1) and making a custom transport for xmlrpclib where I add charset='utf-8' or charset='iso-8859-1'.
Is is not possible to send unicode characters > 128 to zope?
The method is LDAPUserFolder.manage_edit_user()
_______________________________________________
Zope maillist - Zope at zope.org
http://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev ) _______________________________________________
Zope maillist - Zope at zope.org
http://mail.zope.org/mailman/listinfo/zope
** No cross posts or HTML encoding! **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )
More information about the Zope
mailing list