Существует два разных типа кодирования, которые необходимы для различных целей в веб-программировании, и их легко путать.
Специальные символы в тексте, которые должны отображаться как HTML, должны быть закодированы как объекты HTML. Это особенно характерные черты, такие как «<», которые являются частью разметки HTML, но также могут быть полезны для других специальных символов, если есть какие-либо сомнения в кодировке символов, которые будут использоваться.
Специальные символы в URL-адресе должны быть закодированы в URL (заменены на% nn-коды).
Нет никакого вреда в том, чтобы помещать объект HTML в URL-адрес, если он будет обрабатываться как текст HTML тем, что его получает; но если он является частью инструкции к программе (например, &, используемой для разделения аргументов в строке запроса CGI), вы не должны ее кодировать.
Это не оригинал. В HTML вы должны кодировать '&', если за ним следует алфавитно-цифровая строка, которая является действительной ссылкой на сущность. Например, '..? X = 0 & copy = 1' приведет к' ..? X = 0 © = 1'. Как правило, вы всегда должны кодировать '&', чтобы избежать этого. – RoToRa