Ruby on rails REXML::Document.new我们可以在这一行给出编码参数吗?
doc=REXML::Document.new文件 每当我的xml文件包含UTF-8以外的一些特殊字符时,我的代码就会失败Ruby on rails REXML::Document.new我们可以在这一行给出编码参数吗?,ruby-on-rails,ruby,ruby-on-rails-3.1,ruby-on-rails-3.2,rexml,Ruby On Rails,Ruby,Ruby On Rails 3.1,Ruby On Rails 3.2,Rexml,doc=REXML::Document.new文件 每当我的xml文件包含UTF-8以外的一些特殊字符时,我的代码就会失败 REXML::ParseException (#<REXML::ParseException: #<ArgumentError: invalid byte sequence in UTF-8> REXML::ParseException(#您可以调用类似这样的东西 REXML::Document.new(file.force_encoding("FILE
REXML::ParseException (#<REXML::ParseException: #<ArgumentError: invalid byte sequence in UTF-8>
REXML::ParseException(#您可以调用类似这样的东西
REXML::Document.new(file.force_encoding("FILE_ENCODING").encode("UTF-8"))
FILE\u ENCODING是您的文件变量的编码。我尝试了,但得到了文件的未定义方法错误…以下是我所做的……FILE=FILE.open(FILE\u name)……doc=REXML::Document.new(FILE.force\u ENCODING(“UTF-8”))…我的文件默认为UTF-8,因为它是一个XML文件…..文件应该是文本。UTF-8文件中怎么可能有非utf8字符?我正在加载.XML文件..我认为在生成XML时有一个从浏览器复制粘贴的步骤..所以它有一些非UTF-8字符。现在我正在使用这个步骤:REXML::Document.new(file.open)(file\u name,“r:iso-8859-1:utf-8”))解决了我的问题…但我不确定它是如何工作的!你对此有什么想法吗?好的,这会在打开文件时重新编码,所以你不会有问题。我上面的函数也会这样做,但会对文件内容进行重新编码。