我有一个网址并使用以下网址进行转义:
url = "http://ec4.images-xxx.com/images/I/41-%2B6wMiewL._SL135_.jpg"
url = URI.escape(url)
puts url => "http://ec4.images-xxx.com/images/I/41-%252B6wMiewL._SL135_.jpg"
从结果中我可以看到URI再次转义了先前转义的%2B
,后者变为%252B
,这是不正确的。
我想知道如何确保何时转义一个网址。或者,是否有一种智能方法可以知道何时逃脱以及何时不逃避?
答案 0 :(得分:1)
您的第一个字符串已经正确进行了URI编码,因此当您尝试对其进行重新编码时,URI.escape方法会将'%'编码为'%25'('+'的URI编码)。
如果您真的不确定您的字符串是否已经过URI编码,您可以先尝试解码,然后将其与原始字符进行比较。如果它们是相同的,那么它就没有被编码。