[Один из источников информации](https://support.exactonline.com/community/s/knowledge-base#All-All-DNO-Content-urlcharacters) В URL (Uniform Resource Locator) используется определённый набор символов, которые считаются "безопасными" (safe characters). Эти символы могут быть использованы в URL без кодирования. Важно понимать это, особенно при разработке веб-приложений или при работе с запросами к API. Почему некоторые символы считаются "безопасными"? Это связано с тем, что они не имеют специального значения в контексте URL и не влияют на его интерпретацию. Такие символы могут быть переданы в интернет без изменений. Все остальные символы, которые не входят в список безопасных, должны быть закодированы с использованием процентного кодирования (percent-encoding), чтобы избежать путаницы или неправильной интерпретации URL. Например, пробелы обычно кодируются как `%20`, а символы кириллицы кодируются в соответствии с их числовыми значениями в таблице символов. Это особенно важно при передаче данных через URL, например, в запросах GET в веб-формах или при формировании запросов к API, так как некорректно закодированные URL могут привести к ошибкам или непредсказуемому поведению приложения. <br> | Категория | Символы | Требуется кодировка | |----------------------|---------------------------------------------------------------------|---------------------| | Безопасные символы | Буквенно-цифровые [0-9a-zA-Z], специальные символы `$-_.+!*'(),` | Нет | | Зарезервированные | `; / ? : @ = &` | Да | | Небезопасные символы | Включает пустое пространство и символы <br>``" < > # % { } \| \ ^ ~ [ ] \` `` | Да | <br> \* Основываясь на спецификации, "зарезервированные" символы также нужно кодировать, если они не используются по зарезервированному назначению. Например, вопросительный знак зарезервирован для обозначения строки запроса. ### Примеры Это пример URL, содержащего небезопасные символы, которые не кодируются должным образом: ``` https://foo.com/projects?$filter=id eq guid'{DA172A8F-1F5C-4CED-85F1-C844BEAD66E1}' ``` Тот же URL, теперь он правильно закодирован: ``` https://foo.com/projects?$filter=id%20eq%20guid%27%7BDA172A8F-1F5C-4CED-85F1-C844BEAD66E1%7D)' ```