From: Masatoshi Itagaki Date: 2007-11-17T00:05:12+09:00 Subject: [ruby-list:44235] Re: REXML で UTF16 のファイルが読み込めない rook401さん、こんばんは。 かつて、こんな議論がされています。 [ruby-list:42737] rexmlでのUTF-16の扱いについて http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-list/42737?42609-43155 ただし、宣言のないUTF-16LE(UNILE)で似たようなエラーに遭遇して、REXMLのチケットを発行させてもらいました。 http://www.germane-software.com/projects/rexml/ticket/96 これによると、REXMLの3.1.8で修正されたことになっています。てもとのRuby 1.8.6 (2007-06-07 patchlevel 36)では、3.1.6のままですね。 07/11/12 に rook401@yahoo.co.jp さんは書きました: > REXML で UTF16 のファイルを読み込もうとするとエラーになります。 > 上手な対処法があるのでしょうか? > > - test.rb ------------------------- > require 'rexml/document' > > doc = nil > File.open('u16.xml') {|f| > doc = REXML::Document.new f.read > } > ----------------------------------- > > >ruby -vr rexml/rexml -e "puts REXML::Version" > ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] > 3.1.7.1 > > >ruby test.rb > C:/Ruby/lib/ruby/1.8/rexml/parsers/treeparser.rb:90:in > `parse': # (REXML::ParseException) > Line: > Position: > Last 80 unconsumed characters: > > x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 1 6 " ? > > C:/Ruby/lib/ruby/1.8/rexml/parsers/baseparser.rb:346:in > `pull' > C:/Ruby/lib/ruby/1.8/rexml/parsers/treeparser.rb:21:in > `parse' > C:/Ruby/lib/ruby/1.8/rexml/document.rb:204:in `build' > C:/Ruby/lib/ruby/1.8/rexml/document.rb:42:in `initialize' > > > > > ________________________________ > New Design Yahoo! JAPAN 2008/01/01 > > > -- --------------------- いたさん http://rails.to/