一、js传输参数与接收返回值:
1.js访问服务端,传输参数含有中文时,使用encodeURIComponent,对参数值进行Unicode编码,将中文传输到java服务端,即: var str = encodeURIComponent("我们是中文参数值"); var jsonObj = { p:str }; 2.获取java服务端返回字符串时,进行解码还原,即:返回字符串为response var str = decodeURIComponent(response);
//还原空格 str = str.replace(/%20/g," "); 二、java服务端接收js参数与返回字符串: 1.设置request整体的编码格式,request.setCharacterEncoding("UTF-8"); 2.解析request中的参数 String pp = request.getParameter("p"); try { pp = java.net.URLDecoder.decode(pp , "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } 3.java返回值有中文时,需要对返回字符串进行编码,在编码之前需要字符串中的空格进行处理,如果不处理,encode后,将会统一变成+,无法解码还原,即:返回字符串为jsonStr jsonStr=jsonStr.replaceAll(" ", "%20"); try { jsonStr = java.net.URLEncoder.encode(jsonStr,"UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); }