Как узнать, был ли строкой уже закодированный URL?

Как я мог проверить, была ли строка уже закодирована?

Например, если я кодирую TEST==, Я добираюсь TEST%3D%3D. Если я снова кодирую последнюю строку, я добираюсь TEST%253D%253D, Я должен был бы знать прежде, чем сделать это, если это уже кодируется...

Я закодировал параметры, сохраненные, и я должен искать их. Я не знаю для входных параметров, что будет они быть - закодированы или нет, таким образом, я должен буду знать, должен ли я закодировать или декодировать их перед поиском.

47
задан Trick 19 February 2010 в 09:36
поделиться

4 ответа

Расшифровать, сравнить с оригиналом. Если он отличается, кодируется оригинал. Если не отличается, оригинал не кодируется. Но по-прежнему ничего не говорится о том, не закодирована ли вновь декодированная версия. Хорошая задача для рекурсии.

Я надеюсь, что нельзя написать quine в urlencode, иначе этот алгоритм зависнет.

41
ответ дан 26 November 2019 в 19:49
поделиться

Используйте regexp для проверки, содержит ли ваша строка недопустимые символы (т.е. символы, которые не могут быть найдены в кодированной строке URL, например пробелы).

15
ответ дан 26 November 2019 в 19:49
поделиться

Joel on software имел решение для этого некоторое время назад - http://www.joelonsoftware.com/articles/Wrong.html
Или вы можете добавить некоторый префикс к строкам.

4
ответ дан 26 November 2019 в 19:49
поделиться

Вы не можете знать наверняка, если только ваши строки не соответствуют определенному шаблону или вы не отслеживаете свои струны. Как вы сами заметили, закодированная строка также может быть закодирована, поэтому вы не можете быть уверены на 100%, глядя на саму строку.

2
ответ дан 26 November 2019 в 19:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: