Html编码和URL编码

本文介绍了HTML编码和URL编码的区别及使用场景。HTML编码用于在HTML页面中正确显示特殊字符,例如将<转义为&lt;。而在URL编码中,特殊字符和非ASCII字符会被转换为百分号编码,如“中国人+”需要编码后在URL中传递。文中还提到了JavaScript和C#中对应的编码解码方法。

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

一、HTML编码

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

这是因为<、>是html中的特殊字符,解析时会被认为是html标签,此时要在页面上显示出一个<,就需要进行html编码,将<转义为&lt;就ok了~

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

function htmlencode(s){  
    var div = document.createElement('div');  
    div.appendChild(document.createTextNode(s));  
    return div.innerHTML;  
}  
function htmldecode(s){  
    var div = document.createElement('div');  
    div.innerHTML = s;  
    return div.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)



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值