2010-12-07 3 views
13

Я создал XML-документ с Nokogiri: Nokogiri::XML::DocumentКак заставить Nokogiri добавить правильную кодировку XML?

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

ответ

25

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

новые (опции = {})

Создать новый объект 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 '-' UTF-8 '.

+1

большое спасибо, вот что я искал. – Luc 2010-12-12 18:20:51

4

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

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

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

+0

На самом деле, я не разбираю существующий файл, но создаю новый, используя Nokogiri :: XML :: Document.new – Luc 2010-12-12 18:20:11

Смежные вопросы