页面js
var mbmc=document.getElementById('mbmc').value;
var ygbh=document.getElementById('dl_ygbh').value;
var url="/abc/abc/abc/abc.do?operFlag=orNotIn";
showD();
Jquery.post(url,{operFlag:'orNotIn',mbmc:mbmc,ygbh:ygbh},function(data){
if(data=="1"){
alert("该模板已经存在,请重新输入!")
}else{
//略 }
closeD();
});
后台java代码:
public ActionForward orNotIn(ActionMapping mapping, YgxxzhcxListForm ygxxzhcxListForm,
HttpServletRequest request, HttpServletResponse response){
response.setCharacterEncoding("UTF-8");
String mbmc=request.getParameter("mbmc");
String ygbh=request.getParameter("ygbh");
//其他省略
。。。
}
现在就是mbmc这个变量传过来是乱码,sql执行的结果就不对了,请问怎么解决?
12 个解决方案
#1
另外页面编码方式是gbk,但是我改成response.setCharacterEncoding("gbk");
结果也是乱码。
结果也是乱码。
#2
我以前用的是过滤器,把编码方式全部改成了GBK,结果就没有乱码了。。。
#3
你那样不行
#4
解决了
Jquery.post(url,{operFlag:'orNotIn',mbmc:encodeURI(mbmc),ygbh:ygbh},function(data){}
String mbmc = java.net.URLDecoder.decode(request.getParameter("mbmc"), "UTF-8");
String ygbh = java.net.URLDecoder.decode(request.getParameter("ygbh"), "UTF-8");
Jquery.post(url,{operFlag:'orNotIn',mbmc:encodeURI(mbmc),ygbh:ygbh},function(data){}
String mbmc = java.net.URLDecoder.decode(request.getParameter("mbmc"), "UTF-8");
String ygbh = java.net.URLDecoder.decode(request.getParameter("ygbh"), "UTF-8");
#5
前台encodeURIComponent("string")编码
后台再解码
后台再解码
#6
就是,这个需要在前台进行encodeURI()后台用decodeURI()来进行处理
#7
自己解决了甚好~~
public ActionForward orNotIn(ActionMapping mapping, YgxxzhcxListForm ygxxzhcxListForm,
HttpServletRequest request, HttpServletResponse response){
response.setCharacterEncoding("UTF-8");//不是response 是request
String mbmc=request.getParameter("mbmc");
String ygbh=request.getParameter("ygbh");
//其他省略
。。。
}
#8
decodeURI(result)
#9
兄弟, 这里楼主没有错、、、
问题在于ajax的URL, 你定义URL的时候不能接参数, 只要URL里面有参数,就是get方式, 哪怕你后面用了post,实际上它还是get请求!这一点我是深有体会的。
#10
自己解决的问题印象最深刻!顶!
#11
猛一看, 发现7楼的建议是对的............
不过确实URL里面有参数的都是get请求
不过确实URL里面有参数的都是get请求
#12
首先需要对字符串进行编码,获取后在进行字符串的解码操作
#1
另外页面编码方式是gbk,但是我改成response.setCharacterEncoding("gbk");
结果也是乱码。
结果也是乱码。
#2
我以前用的是过滤器,把编码方式全部改成了GBK,结果就没有乱码了。。。
#3
你那样不行
#4
解决了
Jquery.post(url,{operFlag:'orNotIn',mbmc:encodeURI(mbmc),ygbh:ygbh},function(data){}
String mbmc = java.net.URLDecoder.decode(request.getParameter("mbmc"), "UTF-8");
String ygbh = java.net.URLDecoder.decode(request.getParameter("ygbh"), "UTF-8");
Jquery.post(url,{operFlag:'orNotIn',mbmc:encodeURI(mbmc),ygbh:ygbh},function(data){}
String mbmc = java.net.URLDecoder.decode(request.getParameter("mbmc"), "UTF-8");
String ygbh = java.net.URLDecoder.decode(request.getParameter("ygbh"), "UTF-8");
#5
前台encodeURIComponent("string")编码
后台再解码
后台再解码
#6
就是,这个需要在前台进行encodeURI()后台用decodeURI()来进行处理
#7
自己解决了甚好~~
public ActionForward orNotIn(ActionMapping mapping, YgxxzhcxListForm ygxxzhcxListForm,
HttpServletRequest request, HttpServletResponse response){
response.setCharacterEncoding("UTF-8");//不是response 是request
String mbmc=request.getParameter("mbmc");
String ygbh=request.getParameter("ygbh");
//其他省略
。。。
}
#8
decodeURI(result)
#9
兄弟, 这里楼主没有错、、、
问题在于ajax的URL, 你定义URL的时候不能接参数, 只要URL里面有参数,就是get方式, 哪怕你后面用了post,实际上它还是get请求!这一点我是深有体会的。
#10
自己解决的问题印象最深刻!顶!
#11
猛一看, 发现7楼的建议是对的............
不过确实URL里面有参数的都是get请求
不过确实URL里面有参数的都是get请求
#12
首先需要对字符串进行编码,获取后在进行字符串的解码操作