Экранирование специальных символов - это процесс преобразования специальных символов (например, кавычек, пробелов, знаков препинания) в их соответствующие эквиваленты для передачи данных через различные протоколы и форматы.
Процентное кодирование или кодирование URI-адресов представляет собой метод кодирования произвольных данных с использованием ограниченных символов US-ASCII, разрешённых в URI.
Синтаксис URI содержит зарезервированные символы (двух типов) и незарезервированные символы.
Зарезервированные символы
gen-delims ":", "/", "?", "#", "[", "]", "@" - символы, разделяющие URI на крупные компоненты.
sub-delims "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "=" - символы, разделяющие крупный компонент на более мелкие составляющие.
Незарезервированные символы
В общем случае незарезервированные символы - это ALPHA, DIGIT, "-", ".", "_", "~", где ALPHA - это буквы, а DIGIT - десятичные цифры.
Если символ из набора зарезервированных символов используется в другом контексте, то он должен быть закодирован в процентах. Процентное кодирование зарезервированного символа представляет собой замену/преобразование символа в соответствующее ему значение.
Например, зарезервированный символ "/" может быть заменен следующими символами: %2F.
1https://id.alfabank.ru/oidc/authorize?response_type=code&client_id=0cee0683-85ae-49f2-a63d-29f97aad1911&redirect_uri=https://wwww.partner.ru/code&scope=openid&state=abcdef
1https://id.alfabank.ru/oidc/authorize?response_type=code&client_id=0cee0683-85ae-49f2-a63d-29f97aad1911&redirect_uri=https%3A%2F%2Fwwww.partner.ru%2Fcode&scope=openid&state=abcdef
Таблица кодирования символов
| Символ | ANSI |
|---|---|
| ~ | %7E |
| ` | %60 |
| ' | %27 |
| " | %22 |
| @ | %40 |
| ? | %3F |
| ! | %21 |
| # | %23 |
| № | %B9 |
| $ | %24 |