js传中文和特殊符号到java处理方法
2014-09-04 21:26
351 查看
JavaWeb开发过程中从js通过Ajax传递参数到Controller层遇到的中文乱码和特殊符号无法显示的问题。
1.中文乱码的处理方法:
(1)在js页面相关代码如下
var url ="这些是中文";
url=encodeURI(encodeURI(url));//转码两次,很关键
(2)在Controller层的java类中得到url编码后的字符串并解码,相关代码如下
//获得ajax传来的字符串
String memberName = request.getParameter("memberName");
try {
//对字符串进行解码
memberName = java.net.URLDecoder.decode(memberName, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
当然如果遇到特殊字符的话比如说"&","+","#"都需要进行相应的处理如下
2.特殊字符传递过程中的处理
(1)js页面的处理
var url= "#@+&这些带有特殊字符";
url=encodeURI(encodeURI(url));//转码两次,很关键
url = url.replace(/\+/g,"+");
url = url.replace(/\&/g,"&");
url = url.replace(/\#/g,"#");
(2)Controller层java类的处理
//获得ajax传来的字符串
String memberName = request.getParameter("memberName");
//将+号编码,否者解码会消失
memberName = StringUtil.replaceAll(memberName, "+", "+");
try {
//对字符串进行解码
memberName = java.net.URLDecoder.decode(memberName, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
******************************
StringUtil.replaceAll()方法解释如下:
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) {
String encode_id = "";
try {
encode_id = URLEncoder.encode(id, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return encode_id;
}
1.中文乱码的处理方法:
(1)在js页面相关代码如下
var url ="这些是中文";
url=encodeURI(encodeURI(url));//转码两次,很关键
(2)在Controller层的java类中得到url编码后的字符串并解码,相关代码如下
//获得ajax传来的字符串
String memberName = request.getParameter("memberName");
try {
//对字符串进行解码
memberName = java.net.URLDecoder.decode(memberName, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
当然如果遇到特殊字符的话比如说"&","+","#"都需要进行相应的处理如下
2.特殊字符传递过程中的处理
(1)js页面的处理
var url= "#@+&这些带有特殊字符";
url=encodeURI(encodeURI(url));//转码两次,很关键
url = url.replace(/\+/g,"+");
url = url.replace(/\&/g,"&");
url = url.replace(/\#/g,"#");
(2)Controller层java类的处理
//获得ajax传来的字符串
String memberName = request.getParameter("memberName");
//将+号编码,否者解码会消失
memberName = StringUtil.replaceAll(memberName, "+", "+");
try {
//对字符串进行解码
memberName = java.net.URLDecoder.decode(memberName, "UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
******************************
StringUtil.replaceAll()方法解释如下:
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) {
String encode_id = "";
try {
encode_id = URLEncoder.encode(id, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return encode_id;
}
相关文章推荐
- jsp 中 js变量引用java变量时 特殊字符的处理
- JAVA 中URL中文参数乱码的处理方法(汇总)
- XP中java swing 在中文输入的时候总有一个输入窗口,非常难看,可以采用此种方法处理
- 简单实例处理url特殊符号&处理(2种方法)
- js对url网页地址中文乱码问题的处理方法
- JAVA 中URL链接中文参数乱码的处理方法
- JAVA 中URL链接中文参数乱码的处理方法
- JAVA 中URL链接中文参数乱码的处理方法
- JS 控制文本框只能输入中文、英文、数字与指定特殊符号
- 解析Java中文乱码的处理方法(1)
- Java操作MySQL的中文处理方法
- JAVA 中URL链接中文参数乱码的若干处理方法
- php处理字符串,判断是否含有特殊符号,非中文,数字,字符
- JS 控制文本框只能输入中文、英文、数字与指定特殊符号
- java处理特殊符号
- 【转】 解析Java中文乱码的处理方法
- jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
- 解析Java中文乱码的处理方法(1)
- 关于特殊符号的处理方法
- JAVA 中URL链接中文参数乱码的若干处理方法,现在整理收录如下:(抄录)