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

时间:2010-12-07 21:19:55

标签: ruby xml encoding nokogiri

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

我的文件标题为<?xml version="1.0"?>,但我希望<?xml version="1.0" encoding="UTF-8"?>。我可以使用任何选项,以便编码吗?

3 个答案:

答案 0 :(得分:31)

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

  

new(options = {})

     

创建一个新的Builder对象。选项   被发送到顶级文档   正在建设中。

     

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

  Nokogiri::XML::Builder.new(:encoding => 'UTF-8') do |xml|
    ...
  end

同样this page表示您可以执行以下操作(不使用Builder时):

doc = Nokogiri.XML('<foo><bar /><foo>', nil, 'EUC-JP')

据推测,你可以改变EUC-JP&#39;到&#39; UTF-8&#39;。

答案 1 :(得分:4)

解析文档时,您可以设置如下编码:

doc = Nokogiri::XML::Document.parse(xml_input, nil, "UTF-8")

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

答案 2 :(得分:0)

如果您不使用 Object FAST_REFRESH: true NODE_ENV: "development" PUBLIC_URL: "" REACT_APP_SPACE_ID: "my access key" REACT_APP_SPACE_TOKEN: "my access token" WDS_SOCKET_HOST: undefined WDS_SOCKET_PATH: undefined WDS_SOCKET_PORT: undefined __proto__: Object 而是直接创建文档对象,则可以使用 Document#encoding= 设置编码:

Nokogiri::XML::Builder