2014-12-16 2 views
1

URI.encode를 사용하여 url을 내 애플리케이션에 인코딩합니다. 하지만 때로는 이러한 URL을 이미 인코딩 할 수 있으므로 다시 인코딩하지 않아도됩니다. 여기에 하나의 해결책을 볼 수 있습니다 : How to find out if string has already been URL encoded?URL이 이미 인코딩되어 있는지 레일스에서 ​​확인합니다.

그러나이 작업을 위해 루비에서 사용할 수있는 API가 있습니까?

또한 제안 된대로 https://stackoverflow.com/a/2295286/1475737은 문자열을 디코딩하고 길이를 원래의 올바른 해결책으로 확인하고 있습니까?

의견이 있으시면 고맙겠습니다. 그래서 하나 개의 솔루션이

require 'uri' 

URI::REGEXP::UNSAFE 

=> /[^-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]]/n 

지정된 문자열이 정규 표현식과 일치하는지 여부를 테스트 않는 경우에만를 인코딩 :

답변

0

'uri' 모듈은 URI 인코딩 탈출해야합니다 문자 목록을 잡고 정규 표현식을 가지고 .

+0

루비 1.9.3에 대해서는 정의되어 있지 않습니다. (. –

+0

사실, 'uri.encode'는 더 이상 사용되지 않으며 'cgi'모듈이 대신 사용해야합니다. 비슷한 상수. – nimrodm

+0

또한 여기에 제안 된 http://stackoverflow.com/a/2295317/1475737도 있지만 작동하지 않는 예도 있습니다. –