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