08 html编码,Html编码和URL编码

终于弄清楚了这两种编码的使用场景,来分享下。

一、HTML编码

当html页面中某label想要显示test这个内容时,如果简单地写label.html("test"),页面会显示一个内容为test的a标签。

这是因为是html中的特殊字符,解析时会被认为是html标签,此时要在页面上显示出一个

提供一个js进行html编码解码的方法

functionhtmlencode(s){

vardiv = document.createElement_x('div');

div.appendChild(document.createTextNode(s));

returndiv.innerHTML;

}

functionhtmldecode(s){

vardiv = document.createElement_x('div');

div.innerHTML = s;

returndiv.innerText;

}

另外,在使用MVC时,@Model.name这种形式已经对该字段进行html编码了,所以一般不会有这种问题。

但要注意,若是要在text的vlaue中显示,实则是不需要进行HTML编码的,此时需要用@Html.Raw(Model.name)这种形式,来获取原内容。

二、URL编码

url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值

,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。

任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 %

这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。

以上来自百度百科

举一个使用场景,比如页面跳转时的参数,?a=中国人+

,若直接重定向到此链接,+特殊字符会被过滤掉,此时就需要进行url编码了

js中自带了url编码方法,encodeURI()、encodeURIComponent()

对应的url解码方法,decodeURI()、decodeURIComponent()

BTW:C#中对URL编码的方法

编码:Server.UrlEncode(string)

解码:Server.UrlDecode(string)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值