在struts2 下面使用 ajax乱码问题的解决
2009-03-20 22:32
337 查看
java下面乱码问题一直困扰着我,昨天突然发现一个方法解决了这个问题,很抱歉不记得原有作者的连接在这里还是对他表示敬意 解决方法如下:
在发送ajax请求之前,对参数escape()两次( 例:name=escape(escape("张三")); ),然后再发送请求到服务器,服务器接收参数后,对参数unescape(),就可以得到正确的参数( 例:String name=unescape(request.getParameter("name")); ).
附java版的unescape实现
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();
}
经过两次处理的中文文本 传到服务端之后 使用上面的方法即可解决中文乱码的问题 如果您还是不是清楚可以与我联系当然这个方法有些麻烦,但是确实是有效的 如果大家有简单的方法 欢迎交流
在发送ajax请求之前,对参数escape()两次( 例:name=escape(escape("张三")); ),然后再发送请求到服务器,服务器接收参数后,对参数unescape(),就可以得到正确的参数( 例:String name=unescape(request.getParameter("name")); ).
附java版的unescape实现
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();
}
经过两次处理的中文文本 传到服务端之后 使用上面的方法即可解决中文乱码的问题 如果您还是不是清楚可以与我联系当然这个方法有些麻烦,但是确实是有效的 如果大家有简单的方法 欢迎交流
相关文章推荐
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- Ajax的底层实现--使用Ajax实现无刷新登录实例--解决ajax中URl参数带中文的乱码问题
- 使用filter解决中文乱码问题--struts2乱码
- struts2中使用jquery进行ajax提交时乱码解决办法
- struts2中使用jquery进行ajax提交时乱码解决办法
- 解决使用AJAX传中文参数乱码问题
- JSP中,AJAX使用POST方式提交中文乱码问题解决
- struts2 使用filter解决中文乱码问题
- JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决 5大配置点 使用UTF-8编码
- 关于Struts2使用redirectAction方式在两个Action之间传值时中文乱码问题的解决方法
- 使用struts2 时候乱码问题的解决。
- 解决在asp.net中 使用 ajax UpdatePanel出现乱码问题的解决方案
- jQuery UI Autocomplete 使用 ajax 方法传输Json数据出现乱码问题的解决
- JSP解决ajax使用$.get()方式提交中文出现乱码问题
- struts2_Ajax_post_解决了中文乱码问题
- struts2 + ajax 中文乱码问题解决
- 使用escape、encodeURI 和 encodeURIComponent 解决url中文乱码问题
- 使用Volley StringRequest返回String 编码格式错误乱码问题解决
- 使用POI的HWPF操作word(未解决中文乱码问题)
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)