SimpleXmlRpcServer and character encoding

Diez B. Roggisch deets at nospam.web.de
Thu Oct 9 15:48:32 CEST 2008


shymon wrote:

> 
> 
> 
> Diez B. Roggisch-2 wrote:
>> 
>> shymon wrote:
>> 
>>> I'm using SimpleXmlRpcServer class. Although I set encoding parameter in
>>> the constructor, I have to return all strings in default platform
>>> encoding
>>> (windows-1250/win32 or iso-8859-2/linux in my case). When I send values
>>> in, for example, UTF-8, string received by client is messed up.
>>> 
>>> The client is written in java using Apache XmlRpc library 2.0.
>>> 
>>> Is there any solution other than sending all string values in Base64
>>> encoding?
>> 
>> Use unicode-objects. And unicode IS NOT utf-8. The encoding parameter
>> will affect the xml generated & send over the wire - *not* what strings
>> you pass/return to your implementation.
>> 
>> So I think you should remove the encoding parameter alltogether, as this
>> will make the transport being in utf-8. Then use only unicode-objects in
>> your python code. And on the java-side, things *should* be in order.
>> 
>> Diez
>> --
>> http://mail.python.org/mailman/listinfo/python-list
>> 
>> 
> 
> 
> I have tried unicode strings also, let's say u"miłość".
> Result received by the client was the same as if I sent UTF-8 encoded
> string.


Please show concrete code-examples, and the results, preferably as
repr-string, as these contain the hex-chars: 

repr("ö") -> "'\\xc3\\xb6'"

The above shows that the ö is encoded in utf-8.

Diez



More information about the Python-list mailing list