超链接属于get请求
在get请求中,如果有字段的值是中文,后天获取到的是乱码,因为采用的编码是HTTP的默认编码
(HTTP协议时不支持中文的,默认编码:ISO8859-1)
解决方法:
1,获得请求参数后重新编码
(直接获得属性对应的值)
String jspCn = request.getParameter("name"); String cn = ""; try { byte[] bytes=jspCn.getBytes("ISO-8859-1"); cn=new String(bytes,"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
2,获取URL后面所有参数后,通过URLDecoder解码
(获取到的是URL问号后的所有字符串,如请求是"http://www.abc.cn?a=中&b=文",则获取到的是"a=中&b=文",后台获取到的中文是乱码,解码后正常显示)
String jspCn = request().getQueryString(); String cn = ""; try { cn =URLDecoder.decode(jspCn, "utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }
通过上面两种方法,可以将get请求的中文传递给后台