我什么时候应该逃脱网址?

时间:2011-02-01 11:12:15

标签: ruby url uri

我有一个网址并使用以下网址进行转义:

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,这是不正确的。

我想知道如何确保何时转义一个网址。或者,是否有一种智能方法可以知道何时逃脱以及何时不逃避?

1 个答案:

答案 0 :(得分:1)

您的第一个字符串已经正确进行了URI编码,因此当您尝试对其进行重新编码时,URI.escape方法会将'%'编码为'%25'('+'的URI编码)。

如果您真的不确定您的字符串是否已经过URI编码,您可以先尝试解码,然后将其与原始字符进行比较。如果它们是相同的,那么它就没有被编码。