Url Encode和HTML编码之间的区别

时间:2009-11-28 12:56:49

标签: html url encoding character-encoding

URL EncodeHTML Encode之间有什么区别?

5 个答案:

答案 0 :(得分:76)

HTML编码转义HTML文档中使用的字符串中的特殊字符,以防止与更改

等HTML元素混淆
"<hello>world</hello>" 

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

URL编码对URL中的字符串值执行类似操作,例如更改

"hello+world = hello world"

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

答案 1 :(得分:23)

urlEncode将特殊字符替换为Web浏览器/ Web服务器可以理解的字符,以便解决...因此URL。例如,空格被替换为%20,'=%27等...

请参阅以下参考资料:

HtmlEncode将特殊字符替换为HTML引擎自身识别的字符串,以呈现页面内容 - 例如&amp;变为&amp; or < = &lt; > = &lt;这会阻止HTML引擎将这些字符解释为HTML标记的一部分,从而将它们呈现为字符串。

参见此参考:

答案 2 :(得分:13)

HTML和URL本质上都是非常受约束的语言。作为一种语言,它们为特定关键字或运营商增加了意义但对于这两种语言,关键字几乎总是单个字符。例如

  • HTML:&gt;和&lt;
  • 网址:/和:

在使用每种语言时,虽然可以以不确保语言含义的方式使用这些结构。例如,这篇文章包含一个&gt;字符。我不希望它被解释为HTML,只是文本。

这是编码和解码方法发挥作用的地方。这些方法将分别采用字符串并将任何原本将被视为关键字的字符转换为转义形式,而不会将其解释为语言的一部分。

例如:传递&gt;进入HtmlEncode将返回&amp; gt;

答案 3 :(得分:3)

HTMLEncode和URLEncode处理HTML和URL中的无效字符,或者更准确地说,是需要专门编写才能正确解释的字符。例如,在HTML中&lt;和&gt;字符用于表示标签。因此,如果你想写一个数学公式,像1 + 1&lt; 2 + 2,'&lt;'通常会被解释为标签的开头。 HTMLEncoding将此字符转换为“&amp; lt;”这是小于号的编码表示。 URLEncoding也是如此,但是对于特殊字符不同的URL,尽管存在一些重叠。

答案 4 :(得分:1)

我不知道你在使用什么语言,但例如PHP manual提供了很好的解释。

  

的URLEncode

     

返回一个全部的字符串   除-_之外的非字母数字字符。   已被替换为百分比(%)   标志后跟两个十六进制数字和   空格编码为加号(+)。它   以与编码相同的方式编码   从WWW表单发布的数据是   编码,与in中的方式相同   应用程序/ x-WWW窗体-urlencoded   媒体类型。这与»   RFC 1738编码(参见rawurlencode())   因为历史原因,空间   被编码为加号(+)。

Read on