超链接属于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请求的中文传递给后台