2011-12-14 93 views
2
Nokogiri("<a href='*|UNSUB|*'>unsubscribe</a>").to_html 
# returns 
"<a href="*%7CUNSUB%7C*">unsubscribe</a>" 

如何讓Nokogiri不逃避管道?防止Nokogiri逃離URL中的字符

+0

爲什麼要產生[無效URI(http://stackoverflow.com/questions/1547899/which-characters-make-a-url-invalid )? Nokogiri正在幫你一個忙。 – Phrogz 2011-12-16 05:00:30

+2

因爲我需要將URL發送到正在查找諸如\ * | UNSUB | *之類的URL的服務,它們將用取消訂閱URL替換它。 – 2011-12-16 07:49:12

回答

1
require 'nokogiri' 

doc = Nokogiri("<a href='*|UNSUB|*'>unsubscribe</a>") 

puts doc.to_html 
#=> <a href="*%7CUNSUB%7C*">unsubscribe</a> 

puts doc.to_xml 
#=> <?xml version="1.0"?> 
#=> <a href="*|UNSUB|*">unsubscribe</a> 

或者:

puts doc.to_html.gsub('%7C','|') 
#=> <a href="*|UNSUB|*">unsubscribe</a>