有时候我们需要使用ajax提交去提交form的值,这样就需要使用serialize()去获取form的值,但这样获取的值如果有中文,会乱码。这个是什么原因?怎么解决?
原因:.serialize()自动调用了encodeURIComponent方法将数据编码了
解决方法:调用decodeURIComponent(XXX,true);将数据解码
如:
var params = jQuery("#formId").serialize(); // http request parameters. params = decodeU<strong style="color:transparent">来源gaodaima#com搞(代@码网</strong>RIComponent(params,true);
将jquery.js文件中的encodeURIComponent替换为encodeURI。即可解决中文乱码。
还有一种方式将所有jsp、xml的字符集都设置为UTF-8 。
JSP
<%@ page language="java" contentType="text/html; charset=UTF-8"%> XML <?xml version="1.0" encoding="UTF-8"?>
更多jQuery相关技术文章,请访问 jQuery答疑 栏目进行学习!!
以上就是jquery序列化serialize()方法时中文乱码怎么解决?的详细内容,更多请关注gaodaima搞代码网其它相关文章!