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