From: Kazuhiro NISHIYAMA Date: 2005-09-20T17:33:24+09:00 Subject: [ruby-dev:27209] Re: XMLRPC charset 西山和広です。 >>>>> On Tue, 20 Sep 2005 17:07:41 +0900 >>>>> matz@ruby-lang.org(Yukihiro Matsumoto) said: > |彼が全然反応してくれないので、私で当てることにします。 > > と、思ったのですが、今のxmlrpcには[ruby-core:5127]のパッチは > そのままでは当たらないようです。私はxmlrpcユーザではないので > 確認ができないので恐くて自己流での適用はできません。西山さん > の方で今のxmlrpcに当てられるパッチを用意していただけませんか。 > > 今晩中に作業できれば1.8.3に取り込めます。 lib/xmlrpc/server.rbのHunk #1とHunk #4があたらなくなっていて、 Hunk #1の方は既に同じ変更が入っていて、Hunk #4の方は XMLRPC::ServerがXMLRPC::WEBrickServletを継承するように 変更されていて該当部分がなくなっているためでした。 念のため、diffを取り直したパッチを付けておきます。 Index: lib/xmlrpc/client.rb =================================================================== RCS file: /src/ruby/lib/xmlrpc/client.rb,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 client.rb --- lib/xmlrpc/client.rb 24 Jun 2005 20:27:42 -0000 1.2.2.1 +++ lib/xmlrpc/client.rb 20 Sep 2005 08:20:01 -0000 @@ -500,7 +500,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.3 diff -u -p -r1.2.2.3 server.rb --- lib/xmlrpc/server.rb 10 Jul 2005 20:31:48 -0000 1.2.2.3 +++ lib/xmlrpc/server.rb 20 Sep 2005 08:20:01 -0000 @@ -456,7 +456,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 @@ -531,7 +531,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 @@ -764,7 +764,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 -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)