実際、Rails 3.2.1 を使用した jruby-1.6.7 で REXML::Document を使用して XML 文字列を解析する際に問題が発生しました。
私は次のような文字列を持っています
<?xml version="1.0" encoding="US-ASCII"?><a><b>Something</b></a>
以前は、jruby-1.6.5.1 で動作していました。
doc = REXML::Document.new(xml_string)
現在のところ、次のように失敗します。
failed - can't convert NilClass into String
backtrace of deliver! org/jruby/RubyIconv.java:207:in `initialize'
org/jruby/RubyIconv.java:391:in `conv'
/opt/jruby/lib/ruby/1.8/rexml/encodings/ICONV.rb:12:in `encode'
/opt/jruby/lib/ruby/1.8/rexml/source.rb:55:in `encoding='
/opt/jruby/lib/ruby/1.8/rexml/source.rb:45:in `initialize'
/opt/jruby/lib/ruby/1.8/rexml/source.rb:11:in `create_from'
/opt/jruby/lib/ruby/1.8/rexml/parsers/baseparser.rb:121:in `stream='
/opt/jruby/lib/ruby/1.8/rexml/parsers/baseparser.rb:110:in `initialize'
/opt/jruby/lib/ruby/1.8/rexml/parsers/treeparser.rb:9:in `initialize'
/opt/jruby/lib/ruby/1.8/rexml/document.rb:227:in `build'
/opt/jruby/lib/ruby/1.8/rexml/document.rb:43:in `initialize'
ヘッダーを次のように変更すると、次のようになります。
<?xml version="1.0" encoding="utf-8"?><a><b>Something</b></a>
すべて順調。システムにライブラリがありませんか? それは既知の問題ですか? US-ASCII は無効ですか??