我们知道用户的输入永远是恶意的.....所以在入口需要做很多判断,过滤甚至限制操作,比如特殊字符过滤,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 = ""第一种,html网页源代码编码与中文字输入编码不同。
解决方法:
使用软件进行编辑HTML网页内容,推荐使用DW软件进行HTML代码编辑和开发。
尽量不要直接使用记事本进行编辑HTML代码。
第二种,如果网页设置编码是gbk的,而数据库储存数据编码格式是UTF-8的,这个时候程序查询数据库数据显示数据前进乡程序转码即可。
例如PHP程序+mysql查询显示数据转码:
1、mysql_query("SET
NAMES
'UTF8'")
//将查询数据转码为utf8,也就是转换为utf-8
2、mysql_query("SET
NAMES
'GBK'")//将查询数据转码为GBK,如gbk2312
第三种,浏览器造成乱码。
这个可能是你网页没有设置meta
charset编码造成。导致浏览器不能识别你网页默认编码类型。解决方法:
1、如果浏览器浏览时候出现网页乱码,在浏览器中找到转换编码的菜单。
在IE9浏览器中需要转码的网页空白出右键鼠标,即可选择“编码”。
傲游浏览器中浏览需要转码的网页时,菜单“查看”-->“编码”即可选择转换编码
谷歌浏览器中浏览需要转码的网页时,点击右上角“三横”图标选择“工具”-->“编码”即可选择切换网页编码达到让浏览器浏览此网页不是乱码。