我们从数据库取出数据到页面显示的时候,有时候在进行传参的过程中,URL地址栏中可能会出现中文现象,有些浏览器可能会对中文的支持,比如:火狐、IE7以上等等,这些浏览器会自己进行中文转码,而IE6下面当出现中文的时候会出现乱码现象,或者我们地址栏中不希望出现中文,我们可以使用如下方法来进行处理;
1)在js代码中处理地址栏:
<script type="text/javascript"> window.location.href=encodeURI("http://www.baidu.com?u=你好&k=大家"); </script>
转码后的地址信息:http://www.baidu.com/?u=%E4%BD%A0%E5%A5%BD&k=%E5%A4%A7%E5%AE%B6
2)当我们的地址信息使用a标签写在页面中的时候,我们就不能使用js中的encodeURI方法了,这时,我们可以进行如下的处理:
<script type="text/javascript"> document.write('<li><a href="'+encodeURI("http://www.baidu.com?u=你好&k=大家")+'">退出</a></li>'); </script>
得到的结果和上面一样,有时候我们可能会使用循环标签:
<c:forEach var="dishType" items="${searchCount}"> document.write('<li><a href="'+encodeURI("http://www.baidu.com?type=${dishType.type_name}&hell0=你没得")+'">退出</a></li>'); </script> </c:forEach>
同样会对我们每一个出现中文的url地址进行转码,这样我们在传参的时候就不会出现中文的现象啦!
3)有时候传入到后台可能会出现乱码的现象,我们可以在后台用代码进行相应的解码:
http://search.do?query=%E5%A4%A7%E5%AE%B6
URLDecoder.decode(this.query,"utf-8"),query为参数中请求的中文信息
这样我们的中文就得到很好的处理!!