HTML编码会转义在HTML文档中使用的字符串中的特殊字符,以避免与HTML元素混淆,例如改变了元素的意义。
"<hello>world</hello>"
至
"<hello>world</hello>"
URL 编码对 URL 中的字符串值进行类似的转换,比如将空格字符转换为“%20”。
"hello+world = hello world"
要
"hello%2Bworld+%3D+hello+world"
urlEncode将特殊字符替换为可被Web浏览器/Web服务器理解的字符,以便用于寻址...所以是URL。例如,空格被替换为 %20,' 被替换为 %27,等等...
参考资料如下:
HtmlEncode将特殊字符替换为HTML引擎本身可以识别的字符串,以呈现页面内容 - 例如,&
变成 &
或 <
变成 <
,>
变成 >
这样可以防止HTML引擎将这些字符解释为HTML标记的一部分,从而将它们呈现为字符串。
参考资料如下:
HTML和URL本质上都是非常受限制的语言。作为一种语言,它们为特定的关键词或运算符添加了含义。对于这两种语言而言,关键词几乎总是单个字符。例如:
然而,在每种语言的使用中,有可能以不确保语言含义的方式使用这些结构。例如,此文章包含一个>字符。我不希望它被解释为HTML,而只是文本。
这就是编码和解码方法发挥作用的地方。这些方法分别将字符串转换为任何会被视为关键词的字符,转换为已转义形式,不会被解释为语言的一部分。
例如:将>传递到HtmlEncode中将返回>
HTMLEncode和URLEncode用于处理HTML和URL中的无效字符,更准确地说,是需要特殊编写以正确解释的字符。例如,在HTML中,<和>字符用于表示标签。因此,如果您想编写一个数学公式,类似于1+1 < 2+2,"<"通常会被解释为标签的开始。HTMLEncoding将此字符转换为"<",这是小于号的编码表示。URLEncoding执行相同的操作,但针对URL,其特殊字符不同,尽管存在一些重叠。
?
会变成%3F
。HTML编码会将字符编码为适用于HTML的格式。例如,<
会变成<
。 - Matt Ellen