Rails检查URL是否已编码

时间:2014-12-16 11:19:38

标签: ruby-on-rails ruby url-encoding

我正在使用URI.encode对我的铁路应用程序中的url进行编码。但有时这些网址可能已被编码,我不想再对它们进行编码。我可以在这里看到一个解决方案:How to find out if string has already been URL encoded?

但是,想知道ruby中是否有任何API可用于此?

同样正如https://stackoverflow.com/a/2295286/1475737中所建议的那样,解码字符串并使用原始正确的解决方案检查其长度?

感谢任何建议!

1 个答案:

答案 0 :(得分:0)

'uri'模块有一个正则表达式,其中包含应转义以进行URI编码的字符列表:

require 'uri'

URI::REGEXP::UNSAFE

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

因此,一个解决方案是测试给定的字符串是否与此正则表达式匹配,并且只在这样做时对其进行编码。