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");