回车替换到 通过引入nokogiri

问题描述:

回车(在Windows新的生产线使用)被引入nokogiri回车替换到 通过引入nokogiri

xml = Nokogiri::XML "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<a>ABC</a>\n" 
xml.xpath('a').first.content = "testing\r\nnewlines"      
> "testing\r\nnewlines" 
xml.to_s 
> "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<a>testing&#13;\nnewlines</a>\n" 

1)为什么要引入nokogiri这是否更换,以&#13;

2)有没有办法避免这样做?

这是因为libxml2上的一个错误,它错误地转义\r时不应该这样做,因为它是有效的XML值。这里

https://github.com/sparklemotion/nokogiri/issues/1356

唯一的解决方案,我现在可以看到

更多信息,做

.gsub("&#13;", "\r") 

编码可能是问题。它将\ r转换为其HTML代码。

尝试设置编码以这些格式之一
DOC = Nokogiri.XML( '',零, 'EUC-JP')
DOC = Nokogiri.XML( '',零, '窗口1252')
DOC = Nokogiri.XML( '',零, 'ISO-8859-1')

参见:http://www.nokogiri.org/tutorials/parsing_an_html_xml_document.html