xmlrpc cleint (Server class) default encoding is utf-8 it can be modified through the encoding keyword parameter. This parameter is not passed to the Unmarshaller that decode the bit flow causing the server to crash attached is two script reproducing the issue
Thank your for reporting this bug. Are you able to reproduce the bug with current development versions, a.k.a. 2.7 (svn trunk, or the rc release) and 3.2 (py3k branch)? Only security and documentation fixes go in stable releases like 2.6 and 3.1. Also, please upload separate files instead of archives, it’s easier for review. Thanks again!
With 2.7 I'm getting another exception xml.parsers.expat.ExpatError: not well-formed (invalid token): line 5, column 15 where with 2.6 I was getting UnicodeDecodeError: 'utf8' codec can't decode byte 0xa3 in position 0: unexpected code byte I didn't try with 3.2 yet. I also "fixed" the bug in 2.6 by passing the encoding stored in ServerProxy to Transport and then Unmarshaller. I probably did not do it the proper way but it works now
xmlrpc uses XML. This format includes information about the encoding and doesn't need external specification. The server in the example is not correct. It generates XML with default XML declaration that implies the UTF-8 encoding, but the body is encoded with non-UTF-8 encoding. If add the argument encoding='UTF-8' the example works. But this feature is not covered by tests. Proposed patch adds tests for non-default client and server encodings. No changes for the xmlrpc module itself is needed.