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
지정된 문자열이 정규 표현식과 일치하는지 여부를 테스트 않는 경우에만를 인코딩 :
루비 1.9.3에 대해서는 정의되어 있지 않습니다. (. –
사실, 'uri.encode'는 더 이상 사용되지 않으며 'cgi'모듈이 대신 사용해야합니다. 비슷한 상수. – nimrodm
또한 여기에 제안 된 http://stackoverflow.com/a/2295317/1475737도 있지만 작동하지 않는 예도 있습니다. –