我正在使用URI.encode对我的铁路应用程序中的url进行编码。但有时这些网址可能已被编码,我不想再对它们进行编码。我可以在这里看到一个解决方案:How to find out if string has already been URL encoded?
但是,想知道ruby中是否有任何API可用于此?
同样正如https://stackoverflow.com/a/2295286/1475737中所建议的那样,解码字符串并使用原始正确的解决方案检查其长度?
感谢任何建议!
答案 0 :(得分:0)
'uri'
模块有一个正则表达式,其中包含应转义以进行URI编码的字符列表:
require 'uri'
URI::REGEXP::UNSAFE
=> /[^-_.!~*'()a-zA-Z\d;\/?:@&=+$,\[\]]/n
因此,一个解决方案是测试给定的字符串是否与此正则表达式匹配,并且只在这样做时对其进行编码。