jquery form表单.serialize()序列化后中文乱码问题原因及解决
原因:.serialize()自动调用了encodeURIComponent方法将数据编码了
解决方法:调用decodeURIComponent(XXX,true);将数据解码
例如: (相关课程推荐:jQuery教程)
var params = jQuery("#formId").serialize(); // http request parameters. params = dec<p style="color:transparent">来源gao!daima.com搞$代!码网</p>odeURIComponent(params,true);
在进行编码
params = encodeURI(encodeURI(params));
后台
String paramsTrans = new String(params.getBytes("ISO-8859-1"),"UTF-8"); params = java.net.URLDecoder.decode(paramsTrans , "UTF-8");
问题解决。
注意:页面端发出的数据作两次encodeURI,这个做的好处在于,不管浏览器用户在页面来设置编码,服务器所采用的编码来做一次URLencode转换成UTF-8.
encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.
本文来自jQuery答疑栏目,欢迎学习!
以上就是jquery serialize()中文乱码的详细内容,更多请关注gaodaima搞代码网其它相关文章!