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

发布于 2024-10-06 16:12:18 字数 203 浏览 2 评论 0原文

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

我的文件头是 但我期望有 。我可以使用任何选项来显示编码吗?

I have created a xml doc with Nokogiri: Nokogiri::XML::Document

The header of my file is <?xml version="1.0"?> but I'd expect to have <?xml version="1.0" encoding="UTF-8"?>. Is there any options I could use so the encoding appears ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

南城追梦 2024-10-13 16:12:18

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

新(选项= {})

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

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

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

此页面还表示您可以执行以下操作(不使用生成器时):

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

大概您可以更改' EUC-JP' 到 'UTF-8'。

Are you using Nokogiri XML Builder? You can pass an encoding option to the new() method:

new(options = {})

Create a new Builder object. options
are sent to the top level Document
that is being built.

Building a document with a particular encoding for example:

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

Also this page says you can do the following (when not using Builder):

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

Presumably you could change 'EUC-JP' to 'UTF-8'.

单身狗的梦 2024-10-13 16:12:18

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

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

对于我来说返回

When parsing the doc you can set the encoding like this:

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

For me that returns
<?xml version="1.0" encoding="UTF-8"?>

瑶笙 2024-10-13 16:12:18

如果您不使用 Nokogiri::XML::Builder 而是直接创建文档对象,则只需使用 Document#encoding=

doc = Nokogiri::XML::Document.new
# => #<Nokogiri::XML::Document:0x1180 name="document">
puts doc.to_s
# <?xml version="1.0"?>
doc.encoding = 'UTF-8'
puts doc.to_s
# <?xml version="1.0" encoding="UTF-8"?>

If you're not using Nokogiri::XML::Builder but rather creating a document object directly, you can just set the encoding with Document#encoding=:

doc = Nokogiri::XML::Document.new
# => #<Nokogiri::XML::Document:0x1180 name="document">
puts doc.to_s
# <?xml version="1.0"?>
doc.encoding = 'UTF-8'
puts doc.to_s
# <?xml version="1.0" encoding="UTF-8"?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文