Кодировщик/Декодер URL Вопросы и ответы
Кодирование и декодирование URL-строк
В чем разница между encodeURI и encodeURIComponent?
encodeURI() кодирует полный URL, сохраняя структурные символы вроде ://?#. Используйте его для полных URL. encodeURIComponent() кодирует все специальные символы, включая структурные. Используйте его для отдельных компонентов URL, таких как значения параметров запроса. Для параметров запроса почти всегда используйте encodeURIComponent, чтобы предотвратить инъекцию.
Нужно ли мне кодировать пробелы в URL?
Да, пробелы должны быть кодированы в URL. В различных частях URL они могут быть кодированы как %20 (процентное кодирование) или + (в строках запроса application/x-www-form-urlencoded). Современные функции кодирования обрабатывают это автоматически. Браузеры могут отображать пробелы в адресной строке для удобства чтения, но при передаче их отправляют кодированными.
Что означает %20 в URL?
%20 — это процентно-кодированное представление символа пробела. 20 — это шестнадцатеричный ASCII код для пробела (десятичное 32). Вы увидите %20 в URL, потому что пробелы не разрешены напрямую в URL и должны быть кодированы для правильной передачи.
Могу ли я использовать специальные символы в URL?
Специальные символы могут появляться в URL, но должны быть правильно процентно-кодированы. Символы вроде &, =, ?, # имеют специальные значения в URL, поэтому если вы хотите использовать их как данные (например, в значении параметра запроса), вы должны кодировать их как %26, %3D, %3F, %23. Используйте encodeURIComponent() для автоматической обработки этого.
Руководство
Кодируйте специальные символы в URL или декодируйте процентно-кодированные строки. Необходимо для работы с параметрами запроса и URL.
Процентное кодирование
Процентное кодирование — техническое название того, что большинство людей называют кодированием URL. Понимание того, как оно работает, помогает вам отлаживать проблемы с URL, работать с веб-API и создавать приложения, которые правильно обрабатывают специальные символы.