Url编码和HTML编码之间的区别
URL编码和HTML编码有什么区别?
HTML编码转义HTML文档中使用的string中的特殊字符,以防止与HTML元素混淆,如更改
"<hello>world</hello>"
至
"<hello>world</hello>"
URL编码对URL中的string值做类似的改变
"hello+world = hello world"
至
"hello%2Bworld+%3D+hello+world"
urlEncode用网页浏览器/networking服务器可以理解的字符replace特殊字符,以便寻址…因此URL。 例如,空格被replace为%20,'=%27等…
看到这些参考资料
- http://www.blooberry.com/indexdot/html/topics/urlencoding.htm
- http://www.degraeve.com/reference/urlencoding.php
HtmlEncode用由HTML引擎自身识别的stringreplace特殊字符来呈现页面的内容,例如&变成& or < = < > = <
& or < = < > = <
这可以防止HTML引擎将这些字符解释为HTML标记的一部分,因此将它们呈现为string。
看到这个参考:
HTML和URL都是非常受限制的语言 。 作为一种语言,他们为特定的关键字或运营商增加了意义 对于这两种语言,关键字几乎都是单个字符。 例如
- HTML:>和<
- url:/和:
在使用每种语言时,尽pipe可能以不确保语言含义的方式使用这些构造。 例如这个post包含一个>字符。 我不希望它被解释为HTML,只是文本。
这是编码和解码方法的作用。 这些方法将分别采取一个string,并将任何将被视为关键字的字符转换为不会被解释为语言一部分的转义forms。
例如:传入>到HtmlEncode将返回&gt;
HTMLEncode和URLEncode处理HTML和URL中的无效字符,或更准确地说,需要特别写入的字符才能被正确解释。 例如,在HTML中,<和>字符用于表示标签。 因此,如果你想写一个math公式,比如1 + 1 <2 + 2,那么'<'通常被解释为标签的开始。 HTMLEncoding将这个字符变成“&lt;” 这是小于号的编码表示。 URLEncoding也是这样,但对于特殊字符不同的URL,虽然有一些重叠。
我不知道你在用什么语言,但是PHP 手册提供了很好的解释。
URLEncode的
返回除-_之外的所有非字母数字字符的string。 已经被百分号(%)符号replace,后跟两个hex数字和空格,编码为加号(+)。 它的编码方式与WWW表单的发布数据编码方式相同,与application / x-www-form-urlencoded媒体types的方式相同。 这与RFC 1738编码不同(参见rawurlencode()),由于历史原因,空格被编码为加号(+)。
阅读