昨天遇到个很郁闷的问题。我A页面连接到B页面,其中在url中有中文参数。发现有的中文参数可以接收全,有的不能接收全,会少个字。郁闷了很久。后来发现中文参数的字数为双数的就没问题,单数的就有问题。一直郁闷了很久,后来找了两种解决办法。
第一种,也是最简单的,就是A页面和B页面都设置成GBK编码,而不用UTF-8,将在B页面接收参数前,设置一下 request.setCharacterEncoding("GBK"); 就行。
第二种,就是在A页面对连接地址做一个转码 用java.net.URLEncoder 的 encode() 方法。然后在B页面接收参数的时候做一个解码 用java.net.URLDecoder 的 decode 方法。
例如:
在 A.jsp <a href="x.jsp?name=<%=URLEncoder.encode("中文参数","UTF-8") %>" />打开</a>
然后在B.jsp 中
String name = URLDecoder.decode(request.getP...("name"),"UTF-8");
第一种,也是最简单的,就是A页面和B页面都设置成GBK编码,而不用UTF-8,将在B页面接收参数前,设置一下 request.setCharacterEncoding("GBK"); 就行。
第二种,就是在A页面对连接地址做一个转码 用java.net.URLEncoder 的 encode() 方法。然后在B页面接收参数的时候做一个解码 用java.net.URLDecoder 的 decode 方法。
例如:
在 A.jsp <a href="x.jsp?name=<%=URLEncoder.encode("中文参数","UTF-8") %>" />打开</a>
然后在B.jsp 中
String name = URLDecoder.decode(request.getP...("name"),"UTF-8");