Meh*_*ari 77

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

"<hello>world</hello>" 
Run Code Online (Sandbox Code Playgroud)

"&lt;hello&gt;world&lt;/hello&gt;"
Run Code Online (Sandbox Code Playgroud)

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

"hello+world = hello world"
Run Code Online (Sandbox Code Playgroud)

"hello%2Bworld+%3D+hello+world"
Run Code Online (Sandbox Code Playgroud)

  • HTML编码和URL编码从根本上做了不同的事情.例如,如果您使用HTML编码'hello world'并尝试将其添加到网址,则会收到无效的网址.两者都很重要,应该用于不同的情况. (14认同)
  • 我在实践中发现HtmlEncode对于两种使用场景都更加全面.正如@Mehrdad所指出的,URLEncode会添加加号,但如果您使用urlrewrites,这可能会导致问题.所以使用HtmlEncode即使是url也不是问题.我从来没有发现使用HtmlEncode作为网址的问题,但我在使用UrlEncode作为网址时.在我看来,UrlEncode几乎没用. (2认同)
  • 请不要听菲尔。我发现无法相信他正在使用查询字符串并使用HtmlEncode而不是UrlEncode创建现代url。说UrlEncode几乎是无用的,这是我在此站点上看到的最荒谬的事情之一。 (2认同)

Ben*_*ter 23

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

见这些参考文献:

HtmlEncode用HTML引擎本身识别的字符串替换特殊字符以呈现页面内容 - 像&&amp; or < = &lt; > = &lt;这样的东西阻止HTML引擎将这些字符解释为HTML标记的一部分,从而将它们呈现为就像它们一样字符串.

看到这个参考:


Jar*_*Par 13

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

  • HTML:>和<
  • 网址:/和:

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

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

例如:传递>到HtmlEncode将返回>