URL中文参数乱码问题(针对IE6.0)

我们经常使用如下方式进行参数传递,如:

view plaincopy to clipboardprint?
01.<a href="....?action=中文参数" mce_href="....?action=中文参数">url参数传递</a> 
<a href="....?action=中文参数" mce_href="....?action=中文参数">url参数传递</a>

而后台仅有如下代码:

view plaincopy to clipboardprint?
01.String action = request.getParameter("action"); 
String action = request.getParameter("action");

那么获取的可能是乱码,普通的解决方法有:

1.

view plaincopy to clipboardprint?
01.request.setCharacterEncoding("UTF-8");   
02.String action=new String(request.getParameter("action")) ; 
request.setCharacterEncoding("UTF-8");
String action=new String(request.getParameter("action")) ;

2.

view plaincopy to clipboardprint?
01.String action = new Stirng(request.getParameter(action).getBytes("UTF-8")); 
String action = new Stirng(request.getParameter(action).getBytes("UTF-8"));

3.

有些还说在Tomcat中的server.xml中修改配置文件,添加URIEncoding="UTF-8"

view plaincopy to clipboardprint?
01.<Connector port="8080" protocol="HTTP/1.1"   
02.               connectionTimeout="20000"   
03.               redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/> 
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

以上方法测试都可以通过(非IE6.0),但是如果在IE6.0下测试,那么有很多问题。

在IE6.0下测试发现,IE6.0对中文参数的长度有限制,当超过2个中文字符后,第三个字符将产生中文乱码,无法获取全部的参数值,这可能是IE6.0的bug,一下提供解决的方法。

在传递参数时,对中文字符进行加密操作,具体代码如下:

前台URL地址:

view plaincopy to clipboardprint?
01.<a href="......?action= <%=java.net.URLEncoder.encode(" mce_href="......?action=&lt;%=java.net.URLEncoder.encode("中文参数","UTF-8")%>">url参数传递</a> 
<a href="......?action= <%=java.net.URLEncoder.encode(" mce_href="......?action=&lt;%=java.net.URLEncoder.encode("中文参数","UTF-8")%>">url参数传递</a>

后台接受代码:

view plaincopy to clipboardprint?
01.String action = new String(request.getParameter().getBytes("UTF-8")); 
String action = new String(request.getParameter().getBytes("UTF-8"));

在IE6.0下测试通过,无乱码产生,而且对中文字符进行了加密,如:%E8%AE%B8%E7%8E%B2,提高了安全性。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Arthur0088/archive/2010/01/27/5260426.aspx

你可能感兴趣的:(url)