Open deiga opened 10 years ago
That's not something I ever considered. It would be a great addition to the library. If it is an option that can get to Nokogiri, it's an option this library could support.
Nokogiri supports giving an encoding to it http://www.nokogiri.org/tutorials/parsing_an_html_xml_document.html
Hi,
When I make a node.to_xml, the XML produced is not in UTF-8, then french accents are corrupted. (assuming node is an instance of a class 'Node include HappyMapper')
I tried various things but the happymapper to_xml seems to be different from nokogiri to_xml and doesn't accept arguments which set encoding.
How do I select the encoding for happymapper marshalling (objects -> xml) ?
Thank you.
Here are the current set of options you pass to to_xml. I think that this could easily be updated to provide support to send off parameters to Nokogiri.
@Danicela how do you think you would want to add the Nokogiri options to that method?
I'm not sure to understand how to do it, I'm beginner in Ruby.
It would be something like node.to_xml(:builder => new builder(encode("UTF8"))) ?
I tried :
nokogiriBuilder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') file.write(node.to_xml(nokogiriBuilder, nil, nil))
But it writes "#Nokogiri::XML::Builder:0x3cce640".
Then I came back to : file.write(node.to_xml)
And I modified happymapper.rb at line 505 : builder = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') instead of : builder = Nokogiri::XML::Builder.new
And then it worked.
Now... I have to find a way to make the same thing without modifying happymapper.rb.
I got help on this subject, here is the line that doesn't need any change in the gem code :
file.write(node.to_xml(Nokogiri::XML::Builder.new(encoding: 'UTF-8'), nil, nil).to_xml)
@deiga what encoding did the original XML in your example have?
@mvz unfortuantely I have no idea after 3 years of opening this issue :)
@deiga that was to be expected :-). Thanks for responding, anyway.
I get messed up unicode characters when parsing, ie.
Liiketoimintayksikkö => Liiketoimintayksikk\303\266