$ cat res.rb
require 'rexml/document'
r = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n<interface-response>\n <Command>SETDNSHOST</Command>\n <Language>eng</Language>\n <IP>192.168.1.1</IP>\n <ErrCount>0</ErrCount>\n <errors />\n <ResponseCount>0</ResponseCount>\n <responses />\n <Done>true</Done>\n <debug><![CDATA[]]></debug>\n</interface-response>"
r.force_encoding("ASCII-8BIT")
#r.sub!(/<\?xml.*?\?>/){|decl| decl.sub(/\s+encoding=".*?"/, "")}
parsed = REXML::Document.new(r)
$ ruby -v res.rb
ruby 1.9.3p484 (2013-11-22 revision 43786) [i686-linux]
/usr/lib/ruby/1.9.1/rexml/encoding.rb:41:in `encode': "<?" on UTF-16 (Encoding::InvalidByteSequenceError)
from /usr/lib/ruby/1.9.1/rexml/encoding.rb:41:in `decode'
from /usr/lib/ruby/1.9.1/rexml/source.rb:58:in `encoding='
from /usr/lib/ruby/1.9.1/rexml/source.rb:46:in `initialize'
from /usr/lib/ruby/1.9.1/rexml/source.rb:162:in `initialize'
from /usr/lib/ruby/1.9.1/rexml/source.rb:17:in `new'
:
$ ruby -v res.rb
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
res.rb:6: warning: assigned but unused variable - parsed
なんでちゃんと読めとるんじゃろ…