Как мне заставить Nokogiri добавить правильную кодировку XML? - PullRequest
18 голосов
/ 08 декабря 2010

Я создал документ XML с Nokogiri: Nokogiri::XML::Document

Заголовок моего файла <?xml version="1.0"?>, но я ожидаю, что у него будет <?xml version="1.0" encoding="UTF-8"?>.Могу ли я использовать какие-либо опции, чтобы появилась кодировка?

Ответы [ 2 ]

32 голосов
/ 08 декабря 2010

Используете ли вы Nokogiri XML Builder ? Вы можете передать параметр кодирования методу new ():

new (options = {})

Создать новый объект Builder. опции отправляются на Документ верхнего уровня это строится.

Создание документа с определенной кодировкой, например:

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

Также на этой странице говорится, что вы можете делать следующее (если не используете Builder):

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

Предположительно, вы можете изменить 'EUC-JP' на 'UTF-8'.

5 голосов
/ 08 декабря 2010

При разборе документа вы можете установить кодировку так:

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

Для меня это возвращается <?xml version="1.0" encoding="UTF-8"?>

...