Разница между кодированием URL и кодированием HTML - PullRequest

Ответы [ 5 ]

76 голосов
/ 28 ноября 2009

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

"<hello>world</hello>" 

до

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

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

"hello+world = hello world"

до

"hello%2Bworld+%3D+hello+world"
23 голосов
/ 02 января 2009

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

См. Эти ссылки:

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

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

13 голосов
/ 02 января 2009

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

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

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

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

Например: переход> в HtmlEncode вернет & gt;

3 голосов
/ 02 января 2009

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

1 голос
/ 28 ноября 2009

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

URLEncode

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...