如何让Nokogiri添加正确的XML编码?

Luc*_*Luc 18 ruby xml encoding nokogiri

我用Nokogiri创建了一个xml文档: Nokogiri::XML::Document

我的文件的标题是,<?xml version="1.0"?>但我希望有<?xml version="1.0" encoding="UTF-8"?>.有没有我可以使用的选项,所以编码出现?

Lar*_*rsH 33

您使用的是Nokogiri XML Builder吗?您可以将编码选项传递给new()方法:

new(options = {})

创建一个新的Builder对象.选项将发送到正在构建的顶级文档.

使用特定编码构建文档,例如:

  Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
    ...
  end
Run Code Online (Sandbox Code Playgroud)

同时此页说,你可以做以下(当不使用生成器):

doc = Nokogiri.XML('<foo><bar /><foo>', nil, 'EUC-JP')
Run Code Online (Sandbox Code Playgroud)

大概你可以将'EUC-JP'改为'UTF-8'.


Kev*_*ope 5

解析文档时,您可以这样设置编码:

doc = Nokogiri::XML::Document.parse(xml_input, nil, "UTF-8")
Run Code Online (Sandbox Code Playgroud)

对我而言 <?xml version="1.0" encoding="UTF-8"?>