Разница между кодировкой Url и кодировкой HTML

В чем разница между URL Encode и HTML Encode?

Ответ 1

Кодирование HTML ускоряет специальные символы в строках, используемых в документах HTML, чтобы предотвратить путаницу с элементами HTML, такими как изменение

"<hello>world</hello>" 

к

"&lt;hello&gt;world&lt;/hello&gt;"

Кодирование URL-адресов делает аналогичную вещь для строковых значений в URL-адресе, например, при изменении

"hello+world = hello world"

к

"hello%2Bworld+%3D+hello+world"

Ответ 2

urlEncode заменяет специальные символы символами, которые могут быть поняты веб-браузерами/веб-серверами с целью адресации... следовательно, URL. Например, пробелы заменяются на %20, '=% 27 и т.д.

См. следующие ссылки:

HtmlEncode заменяет специальные символы символьными строками, которые распознаются самим движком HTML для отображения содержимого страницы - такие вещи и становятся &amp; or < = &lt; > = &lt;, что не позволяет движку HTML интерпретировать эти символы как части разметки HTML и, следовательно, сделать их так, как если бы они были строками.

См. эту ссылку:

Ответ 3

Как HTML, так и URL-адреса, по сути, являются очень ограниченными языками. В качестве языка они добавляют значение определенным ключевым словам или операторам. Однако для обоих этих языков ключевые слова почти всегда являются одиночными. Например

  • HTML: > и <
  • URL:/и:

При использовании каждого языка, хотя можно использовать эти конструкции так, чтобы не было смысла слова. Например, этот пост содержит > персонаж. Я не хочу, чтобы это интерпретировалось как HTML, просто текст.

Здесь используются методы кодирования и декодирования. Эти методы соответственно берут строку и преобразуют любой из символов, которые иначе считались бы ключевыми словами в экранированную форму, которая не будет интерпретироваться как часть языка.

Например: Passing > в HtmlEncode вернется <

Ответ 4

HTMLEncode и URLEncode обрабатывают недопустимые символы в HTML и URL-адресах или, точнее, символы, которые должны быть специально написаны для правильной интерпретации. Например, в HTML < и > символы используются для обозначения тегов. Таким образом, если вы хотите написать математическую формулу, что-то вроде 1 + 1 < 2 + 2, '<' обычно интерпретируется как начало тега. HTMLEncoding превращает этот символ в "& lt;" который является закодированным представлением знака "меньше". URLEncoding делает то же самое, но для URL-адресов, для которых специальные символы разные, хотя есть некоторое перекрытие.

Ответ 5

Я не знаю, на каком языке вы работаете, но PHP руководство дает хорошие пояснения.

UrlEncode

Возвращает строку, в которой все не-буквенно-цифровые символы, кроме -_. были заменены процентом (%) затем следуют две шестнадцатеричные цифры и пробелы, закодированные как знаки плюс (+). Это кодируется так же, как опубликованные данные из формы WWW закодировано, то же самое, что и в применение/х-WWW-форм-urlencoded тип носителя. Это отличается от " RFC 1738 (см. Rawurlencode()) в том, что по историческим причинам, пространства кодируются как знаки плюс (+).

Читать дальше