get请求带有中午参数解决方案
原因:中文参数前台传过去是utf-8编码,拿到之后不是按utf-8解码,默认是按iso8859-1解码。
就到导致了乱码问题
解决方案有两种:
一、拿到iso8859-1的字节码,组成utf-8的文字
key = new String(key.getBytes("iso8859-1"), "utf-8");
二、 推荐的方法:在前端写自定义标签对中文参数进行编码,在后台进行解码,就不会存在乱码问题
自定义标签如下:
/**
* 自行定义的标签
*/
public class MyTag extends TagSupport {
private static final long serialVersionUID = 4403969892682141312L;
//对url中文参数进行编码
public static String URLEncoder(String str){
try {
String temp = URLEncoder.encode(str, "UTF-8");
return temp;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
//解决不同浏览器的在对数据传输中不同的字符集问题。
public static String URLEncoderRep(String str){
try {
String temp = URLEncoder.encode(str, "UTF-8");
String temp2 = temp.replace("%", "!");
return temp2;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return str;
}
}
解码:
para = java.net.URLDecoder.decode(para, "UTF-8");