Hello,

XMLRPC library's default charset is us-ascii,
because 3.1 Text/xml Registration in RFC3023:
>      Conformant with [RFC2046], if a text/xml entity is received with
>      the charset parameter omitted, MIME processors and XML processors
>      MUST use the default charset value of "us-ascii"[ASCII].


In XML 1.0 <http://www.w3.org/TR/2004/REC-xml-20040204/#charencoding>
> All XML processors MUST be able to read entities in both
> the UTF-8 and UTF-16 encodings.
, then I think that default charset should be utf-8.


Index: lib/xmlrpc/client.rb
===================================================================
RCS file: /src/ruby/lib/xmlrpc/client.rb,v
retrieving revision 1.2
diff -u -p -r1.2 client.rb
--- lib/xmlrpc/client.rb	17 Nov 2003 21:30:31 -0000	1.2
+++ lib/xmlrpc/client.rb	31 May 2005 06:20:28 -0000
@@ -489,7 +489,7 @@ module XMLRPC
     def do_rpc(request, async=false)
       header = {  
        "User-Agent"     =>  USER_AGENT,
-       "Content-Type"   => "text/xml",
+       "Content-Type"   => "text/xml; charset=utf-8",
        "Content-Length" => request.size.to_s, 
        "Connection"     => (async ? "close" : "keep-alive")
       }
Index: lib/xmlrpc/server.rb
===================================================================
RCS file: /src/ruby/lib/xmlrpc/server.rb,v
retrieving revision 1.2.2.1
diff -u -p -r1.2.2.1 server.rb
--- lib/xmlrpc/server.rb	13 Aug 2004 04:24:16 -0000	1.2.2.1
+++ lib/xmlrpc/server.rb	31 May 2005 06:20:28 -0000
@@ -448,7 +448,7 @@ class CGIServer < BasicServer
       length = ENV['CONTENT_LENGTH'].to_i
 
       http_error(405, "Method Not Allowed") unless ENV['REQUEST_METHOD'] == "POST" 
-      http_error(400, "Bad Request")        unless ENV['CONTENT_TYPE'] == "text/xml"
+      http_error(400, "Bad Request")        unless parse_content_type(ENV['CONTENT_TYPE']).first == "text/xml"
       http_error(411, "Length Required")    unless length > 0 
 
       # TODO: do we need a call to binmode?
@@ -457,7 +457,7 @@ class CGIServer < BasicServer
 
       http_error(400, "Bad Request")        if data.nil? or data.size != length
 
-      http_write(process(data), "Content-type" => "text/xml")
+      http_write(process(data), "Content-type" => "text/xml; charset=utf-8")
     }
   end
 
@@ -532,7 +532,7 @@ class ModRubyServer < BasicServer
 
       http_error(400, "Bad Request")        if data.nil? or data.size != length
 
-      http_write(process(data), 200, "Content-type" => "text/xml")
+      http_write(process(data), 200, "Content-type" => "text/xml; charset=utf-8")
     }
   end
 
@@ -712,7 +712,7 @@ class Server < BasicServer
 
     response.status = 200
     response.header['Content-Length'] = resp.size
-    response.header['Content-Type']   = "text/xml"
+    response.header['Content-Type']   = "text/xml; charset=utf-8"
     response.body = resp 
     
    end
@@ -817,7 +817,7 @@ class WEBrickServlet < BasicServer
 
     response.status = 200
     response['Content-Length'] = resp.size
-    response['Content-Type']   = "text/xml"
+    response['Content-Type']   = "text/xml; charset=utf-8"
     response.body = resp 
   end
 end