Когда мне следует избегать URL? - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть URL-адрес, и я избежал его с помощью:

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, что неверно.

Я хочу знать, как убедиться, что один URL должен быть экранирован.Или есть умный метод, который знает, когда убегать, а когда не убегать?

1 Ответ

1 голос
/ 01 февраля 2011

Ваша первая строка уже правильно закодирована в URI, поэтому при попытке ее перекодировать метод URI.escape кодирует «%» с помощью «% 25» (кодировка URI для «+»).

Если вы действительно не уверены, была ли ваша строка кодирована по URI или нет, вы можете сначала попытаться декодировать ее и сравнить с оригиналом.Если они одинаковы, то они не были закодированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...