js传中⽂和特殊符号到java处理⽅法js传中⽂和特殊符号到java处理⽅法
JavaWeb开发过程中从js通过Ajax传递参数到Controller层遇到的中⽂乱码和特殊符号⽆法显⽰的问题。1.中⽂乱码的处理⽅法:
(1)在js页⾯相关代码如下
var url ="这些是中⽂";
url=encodeURI(encodeURI(url));//转码两次,很关键
(2)在Controller层的java类中得到url编码后的字符串并解码,相关代码如下
//获得ajax传来的字符串
String memberName = Parameter("memberName");
try {
//对字符串进⾏解码
memberName = java.URLDecoder.decode(memberName, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
当然如果遇到特殊字符的话⽐如说"&","+","#"都需要进⾏相应的处理如下
2.特殊字符传递过程中的处理
(1)js页⾯的处理
var url= "#@+&这些带有特殊字符";
url=encodeURI(encodeURI(url));//转码两次,很关键
url = place(/\+/g,"+");
url = place(/\&/g,"&");
url = place(/\#/g,"#");
(2)Controller层java类的处理
//获得ajax传来的字符串
String memberName = Parameter("memberName");
//将+号编码,否者解码会消失
memberName = placeAll(memberName, "+", "+");
try {
//对字符串进⾏解码
memberName = java.URLDecoder.decode(memberName, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
******************************
static public String replaceAll(String str, String oldStr, String newStr) {
int i = str.indexOf(oldStr);
int n = 0;
while (i != -1) {
str = str.substring(0, i) + newStr
+ str.substring(i + oldStr.length());
i = str.indexOf(oldStr, i + newStr.length());
n++;
}
return str;
}
-----------------------------
得到特殊符号的编码的⽅法如下:
public String encode(String id) {
java调用js的ajax
String encode_id = "";
try {
encode_id = de(id, "UTF-8");  } catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return encode_id;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。