action获取jsp表单中的中文参数,只要整个项目都采用utf-8编码格式都不会出现乱码问题;但jsp中用到js,并从js向action传中文参数,就会出现中文乱的现象
做项目的时候,发现action获取jsp表单中的中文参数,只要整个项目都采用utf-8编码格式都不会出现乱码问题;但jsp中用到js,并从js向action传中文参数,就会出现中文乱的现象。几经询问百度,上面说法很多。
经过实践发现下面的方法可以解决中文乱码问题:
jsp的js中:中文参数用encodeuri(encodeuri(中文参数)),经过两次转码。例如:
function show(next,id,realname){
document.forms['f2'].action="usersearchnextpage?next="+next+"&id="+id+"&realname="+encodeuri(encodeuri(realname));
document.forms['f2'].submit();
}
其中 realname是中文参数。故在提交的url中将realname转码两次。encodeuri(encodeuri(realname))
action中:接收中文参数时解码。用:java.net.urldecoder.decode(realname,"utf-8");
如:
string realname = servletactioncontext.getrequest().getparameter("realname");
try {
realname = java.net.urldecoder.decode(realname,"utf-8");
} catch (unsupportedencodingexception e1) {
e1.printstacktrace();
}
经过上述处理,问题解决。
以上就是分享一个js向action传中文参数时出现乱码的问题以及如何解决的详细内容。
