Message118376
If I add a string to the response, which contains non-printable characters, the output will not be parsed by the most of the XML parsers (I tried with XML-RPC for PHP).
Here is my quick and dirty fix:
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -165,9 +165,18 @@ def _decode(data, encoding, is8bit=re.compile("[\x80-\xff]").search):
return data
def escape(s, replace=string.replace):
- s = replace(s, "&", "&")
- s = replace(s, "<", "<")
- return replace(s, ">", ">",)
+ res = ''
+ for char in s:
+ char_code = ord(char)
+ if (char_code < 32 and char_code not in (9, 10, 13)) or char_code > 126:
+ res += '\\x%02x' % ord(char)
+ else:
+ res += char
+
+ res = replace(res, "&", "&")
+ res = replace(res, "<", "<")
+ res = replace(res, ">", ">")
+ return res
if unicode:
def _stringify(string): |
|
Date |
User |
Action |
Args |
2010-10-11 16:16:41 | gyorkop | set | recipients:
+ gyorkop |
2010-10-11 16:16:41 | gyorkop | set | messageid: <1286813801.19.0.762560466895.issue10066@psf.upfronthosting.co.za> |
2010-10-11 16:16:39 | gyorkop | link | issue10066 messages |
2010-10-11 16:16:38 | gyorkop | create | |
|