javascript 下如何进行Html 编码 及 解码

html-css010

javascript 下如何进行Html 编码 及 解码,第1张

我们知道用户的输入永远是恶意的.....所以在入口需要做很多判断,过滤甚至限制操作,比如特殊字符过滤,html编码,防sql注入等.今天说到的是如何在客户端用javascript进行 html编码/解码.肯定有人说道在服务器端一句代码就可以实现,为什么非要用javascript来实现,对,服务器端非常容易实现.比如ASP.NET 下.对用户输入只需要 Server.HtmlEncode / Server.HtmlDecode . 但如今ajax横行的时代,无处不在的无刷新模式.我们后台轻松编码后提交到数据库,但是可怜的前台如何进行编码呢,如果不编码,用户输入了<head>或者</div>那么你的页面马上面临着崩溃. 所以用到了javascript 来实现 html 编码/解码直接上代码:<script language=javascript>//编码function ToHtmlEnCode(str) {var s = ""if (str.length == 0) return ""s = str.replace(/&/g, "")s = s.replace(/</g, "<")s = s.replace(/>/g, "")s = s.replace(/ /g, "")s = s.replace(/\'/g, "'")s = s.replace(/\"/g, "")s = s.replace(/\n/g, "<br>")return s} function ToHTMLDeCode(str) {var s = ""

1 你定义一个资源文件,里面包含所有中文的键值对。你只要调用key就可以,就不会乱码。

2 <script charset="utf-8"></script>

3 中文使用ascii编码。在cmd下输入navite2ascii,将要转换的中文改为ascii。

4 字符编码的问题,你要把插入的页面和当前页面的编码一致。

5 使用escape转换,例如sendData = escape("请输入一个有效的电子邮件地址")

7 在后台处理response设置编码格式utf8或gb2312或gbk

你看下这个方法:

function load(){

var html="<span style='color:Red'>测试<span>"

document.getElementById('div1').innerHTML=html

document.getElementById('div2').innerText=html

}