Hello,
Thanks for your reply.

I successfully pass the the Korean Character round-trip test 
with current CVS version which is patched from the atlassian.
( with common-codec-1.2 )

Thanks,

Youngho

----- Original Message ----- 
From: "Shirai,Kaoru" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Thursday, October 07, 2004 10:32 AM
Subject: Re: Passing non-ASCII String value - Again


> >  Does we need another patch ?
> 
> 1. Try to insert this code before creating XmlRpcClient:
> 
>   XmlRpc.setEncoding("UTF8");
> 
> 2. Otherwise, how about this patch (string-utf8.diff)?
>    ( Note: This patch also requires XmlRpc.setEncoding("UTF8") )
> -- 
> Shirai,Kaoru <[EMAIL PROTECTED]>
> Korinkan Ltd. - http://www.korinkan.co.jp/
> 


--------------------------------------------------------------------------------


> 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.37
> diff -u -r1.37 XmlRpc.java
> --- src/java/org/apache/xmlrpc/XmlRpc.java 30 Jun 2004 06:11:55 -0000 1.37
> +++ src/java/org/apache/xmlrpc/XmlRpc.java 7 Oct 2004 01:31:24 -0000
> @@ -56,6 +56,7 @@
>   */
>  
>  import java.io.InputStream;
> +import java.io.InputStreamReader;
>  import java.util.Hashtable;
>  import java.util.Stack;
>  import java.util.Vector;
> @@ -387,6 +388,7 @@
>       */
>      synchronized void parse(InputStream is) throws Exception
>      {
> +        InputStreamReader reader = new InputStreamReader(is, "UTF8");
>          // reset values (XmlRpc objects are reusable)
>          errorLevel = NONE;
>          errorMsg = null;
> @@ -440,7 +442,7 @@
>          }
>          try
>          {
> -            parser.parse(new InputSource (is));
> +            parser.parse(new InputSource (reader));
>          }
>          finally
>          {
> 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.11
> diff -u -r1.11 XmlWriter.java
> --- src/java/org/apache/xmlrpc/XmlWriter.java 30 Jun 2004 18:46:58 -0000 1.11
> +++ src/java/org/apache/xmlrpc/XmlWriter.java 7 Oct 2004 01:31:24 -0000
> @@ -335,11 +335,6 @@
>              char c = text.charAt (i);
>              switch (c)
>              {
> -            case '\t':
> -            case '\r':
> -            case '\n':
> -                write(c);
> -                break;
>              case '<':
>                  write(LESS_THAN_ENTITY);
>                  break;
> @@ -350,8 +345,16 @@
>                  write(AMPERSAND_ENTITY);
>                  break;
>              default:
> -                if (c < 0x20 || c > 0xff)
> -                {
> +                boolean badChar = false;
> +                switch (c) {
> +                case '\t':
> +                case '\r':
> +                case '\n':
> +                    break;
> +                default:
> +                    badChar = (c < 0x20);
> +                }
> +                if (badChar) {
>                      // Though the XML-RPC spec allows any ASCII
>                      // characters except '<' and '&', the XML spec
>                      // does not allow this range of characters,
> @@ -361,10 +364,7 @@
>                                                "corresponding to XML entity &#" +
>                                                String.valueOf((int) c) + ';', null);
>                  }
> -                else
> -                {
> -                    write(c);
> -                }
> +                write(c);
>              }
>          }
>      }
> 

Reply via email to