【问题标题】:Difference between Url Encode and HTML encodeURL编码和HTML编码的区别
【发布时间】:2010-12-21 05:07:00
【问题描述】:

URL EncodeHTML Encode 有什么区别?

【问题讨论】:

  • 如果您想在 URL 中使用编码,请使用 URL 编码。如果要编码以在 HTML 页面上显示,请对其进行 HTML 编码
  • URL 编码将对字符进行编码,以便它们对 URL 有效。例如。 ? 变为 %3F HTML 编码将对字符进行编码,因此它们对 HTML 有效。例如。 < 变为 <

标签: html url encoding character-encoding


【解决方案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"

【讨论】:

  • HTML 编码和 URL 编码做着根本不同的事情。例如,如果您对“hello world”进行 HTML 编码并尝试将其添加到 url,您将得到一个无效的 url。两者都很重要,应该用于不同的情况。
  • 只需要检查并用 UrlEncoding 替换几个用于编码 url 的 HtmlEncode 用法,空格和一些其他特殊字符的编码问题
  • 当心,使用 HtmlEncode 代替 UrlEncode 可能会对 URL 产生问题,因为 HtmlEncode 会将“&”字符放在整个字符串中。根据接收 URL 的 Web 服务所期望的内容,一些额外的“&”字符可能会带来很大的问题。例如,如果您的 Web 服务希望 URL 中的每个参数前面都有一个“&”字符,但您使用了 HtmlEncode,它添加了一堆额外的“&”字符,那么当您的 Web 服务时,您可能会收到错误尝试解释 URL。出于这个原因,我只需要用 UrlEncode 替换 HtmlEncode 的几种用法。
  • 请不要听菲尔的。我发现无法相信他正在使用查询字符串并使用 HtmlEncode 而不是 UrlEncode 创建现代 url。说 UrlEncode 几乎没用是我在这个网站上看到的最荒谬的事情之一。
【解决方案2】:

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

请参阅这些参考资料:

HtmlEncode 将特殊字符替换为 HTML 引擎本身识别的字符串以呈现页面内容 - 例如 &amp;amp; 变为 &amp;amp;&amp;lt; = &amp;lt;, &gt; = @987654329 @ 这可以防止 HTML 引擎将这些字符解释为 HTML 标记的一部分,因此将它们呈现为字符串。

请参阅此参考:

【讨论】:

  • 实际上 URLEncode 将空格替换为 +,这在某些情况下可能会出现问题。
【解决方案3】:

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

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

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

这就是 Encode 和 Decode 方法发挥作用的地方。这些方法将分别接受一个字符串并将任何原本会被视为关键字的字符转换为不会被解释为语言的一部分的转义形式。

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

【讨论】:

    【解决方案4】:

    HTMLEncode 和 URLEncode 处理 HTML 和 URL 中的无效字符,或更准确地说,是需要专门编写才能正确解释的字符。例如,在 HTML 中, 字符用于指示标签。因此,如果你想写一个数学公式,比如 1+1

    【讨论】:

      【解决方案5】:

      我不知道您使用的是哪种语言,但例如 PHP manual 提供了很好的解释。

      网址编码

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

      Read on

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-18
        • 2021-11-27
        • 1970-01-01
        • 2011-08-19
        • 2018-02-27
        • 2013-06-07
        • 1970-01-01
        相关资源
        最近更新 更多