こんにちは、山本です。

> $ ruby test.rb
> /usr/local/ruby-1.8.2/lib/ruby/1.8/rexml/parsers/treeparser.rb:85:in `parse': #<NameError: uninitialized constant REXML::Source::Iconv> (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:
>  <root> <text>テスト</text> </root>     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 で
無効にしてありますが)半角カナの変換など、自動的に変換されてしまう部分があると聞いたことが
あり、その辺がどうなのかよくわかりません。