首先Java传值问题有两种 post 和 get
1.post的请求中文很好解决 加过滤器 通知修改中文问题
2.get的请求 url 地址首先是以浏览器的字符编码 ie 默认是 utf—8 火狐 默认是 GBK
当以request.getParamter("name");接值的时候 便会以容器 服务器的编码的格式 (tomcat 默认是iso-8859-1)
当所以当解码的时候
String mc=new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
即可
如果不受tomcat的影响即是容器 编码两次
java.net.URLEncoder.encode(java.net.URLEncoder.encode(request.getParameter("find"),"UTF-8"))
在后台直接解码
URLDecoder.decode(request.getParameter("find"),"UTF-8")
即可获得前台传值的中文
js编码的话
escape(escape($('#content').val())
后台直接解码
public static String unescape(String src) { StringBuffer tmp = new StringBuffer(); tmp.ensureCapacity(src.length()); int lastPos = 0, pos = 0; char ch; while (lastPos < src.length()) { pos = src.indexOf("%", lastPos); if (pos == lastPos) { if (src.charAt(pos + 1) == 'u') { ch = (char) Integer.parseInt(src .substring(pos + 2, pos + 6), 16); tmp.append(ch); lastPos = pos + 6; } else { ch = (char) Integer.parseInt(src .substring(pos + 1, pos + 3), 16); tmp.append(ch); lastPos = pos + 3; } } else { if (pos == -1) { tmp.append(src.substring(lastPos)); lastPos = src.length(); } else { tmp.append(src.substring(lastPos, pos)); lastPos = pos; } } } return tmp.toString(); }
解码即可