Index: src/java/org/apache/xmlrpc/XmlRpc.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpc.java,v
retrieving revision 1.35
diff -r1.35 XmlRpc.java
185c185
< * <code>ISO8859_1</code>.
—
> * <code>UTF-8</code>. (Changed by Charles)
187c187
< static String encoding = XmlWriter.ISO8859_1;
—
> static String encoding = XmlWriter.UTF8;
Index: src/java/org/apache/xmlrpc/XmlWriter.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlWriter.java,v
retrieving revision 1.6
diff -r1.6 XmlWriter.java
335c335
< if (c < 0x20 || c > 0xff)
—
> if (isInvalidXmlChar(c))
337,344c337,339
< // Though the XML-RPC spec allows any ASCII
< // characters except '<' and '&', the XML spec
< // does not allow this range of characters,
< // resulting in a parse error from most XML
< // parsers.
< throw new XmlRpcException(0, "Invalid character data " +
< "corresponding to XML entity &#" +
< String.valueOf((int) c) + ';');
—
> write("&#");
> write(String.valueOf((int)c));
> write(';');
351a347,354
> }
>
> private boolean isInvalidXmlChar(char c)
> {
> if (c == 0x09 || c == 0x0A || c == 0x0D)
> return false;
>
> return c < 0x20 || (c > 0xD7FF && c < 0xE000) || c > 0xFFFD;
Index: src/java/org/apache/xmlrpc/XmlRpc.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpc.java,v
retrieving revision 1.35
diff -r1.35 XmlRpc.java
185c185
< * <code>ISO8859_1</code>.
—
> * <code>UTF-8</code>. (Changed by Charles)
187c187
< static String encoding = XmlWriter.ISO8859_1;
—
> static String encoding = XmlWriter.UTF8;
Index: src/java/org/apache/xmlrpc/XmlWriter.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlWriter.java,v
retrieving revision 1.6
diff -r1.6 XmlWriter.java
335c335
< if (c < 0x20 || c > 0xff)
—
> if (isInvalidXmlChar(c))
337,344c337,339
< // Though the XML-RPC spec allows any ASCII
< // characters except '<' and '&', the XML spec
< // does not allow this range of characters,
< // resulting in a parse error from most XML
< // parsers.
< throw new XmlRpcException(0, "Invalid character data " +
< "corresponding to XML entity &#" +
< String.valueOf((int) c) + ';');
—
> write("&#");
> write(String.valueOf((int)c));
> write(';');
351a347,354
> }
>
> private boolean isInvalidXmlChar(char c)
> {
> if (c == 0x09 || c == 0x0A || c == 0x0D)
> return false;
>
> return c < 0x20 || (c > 0xD7FF && c < 0xE000) || c > 0xFFFD;