2013-06-20 66 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的替代品。 –