2013-06-20 41 views
-1

纯文本我写一个脚本来提取网址的搜索词,但我需要他们人性化和其中许多人有特殊的URL编码的字符。我在想,如果有一个宝石或一些内置的功能在Ruby中这些转换为纯文本?或者我会不得不编写自己的函数来清理它们?转换URL编码字符串与红宝石

+1

你有一个例子吗? – Stefan

+0

你将不得不写他们,或者弄明白你自己,因为你没有给我们足够的信息,以帮助。我们需要您的输入样本以及您想要输出的样本。 –

回答

1

您可以使用CGI::unescape为URL解码:

require 'cgi' 
string = CGI::unescape("1+%2B+2+%3D+3") 
#=> "1 + 2 = 3" 
+2

因为它是一个URI,我可能会使用'URI.decode_www_form_component( “1 +%2B + 2 +%3D + 3”) => “1 + 2 = 3”' –

+0

如果网址已正确编码,是。否则,'CGI :: unescape'是更健壮的:'CGI :: UNESCAPE( “10%”)#=> “10%”''与URI.decode_www_form_component( “10%”)#=>引发ArgumentError:无效% -encoding' – Stefan

+0

是的,那是长期存在的问题与URI。总是有Addressable :: URI,它被建议作为URI的替代品。 –