From: "H.Yamamoto" Date: 2005-07-30T17:59:13+09:00 Subject: [ruby-list:40967] Re: Solaris9上のREXML こんにちは、山本です。 > $ ruby test.rb > /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/parsers/treeparser.rb:85:in `parse': # (REXML::ParseException) > (eval):6:in `encode' > /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/source.rb:41:in `encoding=' > /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/parsers/baseparser.rb:202:in `pull' > /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/parsers/treeparser.rb:21:in `parse' > /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/document.rb:176:in `build' > /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/document.rb:45:in `initialize' > test.rb:4:in `new' > test.rb:4 > ... > uninitialized constant REXML::Source::Iconv > Line: > Position: > Last 80 unconsumed characters: > テスト from /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/document.rb:176:in `build' > from /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/document.rb:45:in `initialize' > from test.rb:4:in `new' > from test.rb:4 これは、uconv がインストールされてないために起こるエラーだと思います。 http://www.yoshidam.net/Ruby_ja.html から入手してみてください。 もしくは、lib/ruby/1.8/rexml/encodings/EUC-JP.rb を require 'nkf' module REXML module Encoding def decode_eucjp(str) NKF.nkf('-Eu -m0', str) end def encode_eucjp content NKF.nkf('-Ue -m0', content) end register("EUC-JP") do |obj| class << obj alias decode decode_eucjp alias encode encode_eucjp end end end end のように書き換えればとりあえず動くと思いますが、NKF は MIME のデコード(これは -m0 で 無効にしてありますが)半角カナの変換など、自動的に変換されてしまう部分があると聞いたことが あり、その辺がどうなのかよくわかりません。