В чем разница между URL Encode и HTML Encode?
Разница между кодировкой Url и кодировкой HTML
Ответ 1
Кодирование HTML ускоряет специальные символы в строках, используемых в документах HTML, чтобы предотвратить путаницу с элементами HTML, такими как изменение
"<hello>world</hello>"
к
"<hello>world</hello>"
Кодирование URL-адресов делает аналогичную вещь для строковых значений в URL-адресе, например, при изменении
"hello+world = hello world"
к
"hello%2Bworld+%3D+hello+world"
Ответ 2
urlEncode заменяет специальные символы символами, которые могут быть поняты веб-браузерами/веб-серверами с целью адресации... следовательно, URL. Например, пробелы заменяются на %20, '=% 27 и т.д.
См. следующие ссылки:
- http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
- http://www.degraeve.com/reference/urlencoding.php
HtmlEncode заменяет специальные символы символьными строками, которые распознаются самим движком HTML для отображения содержимого страницы - такие вещи и становятся & or < = < > = <
, что не позволяет движку 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()) в том, что по историческим причинам, пространства кодируются как знаки плюс (+).