页面处理URL参数出现中文问题

  我们从数据库取出数据到页面显示的时候,有时候在进行传参的过程中,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为参数中请求的中文信息

这样我们的中文就得到很好的处理!!

你可能感兴趣的:(页面处理URL参数出现中文问题)