jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法相关的知识,希望对你有一定的参考价值。

序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了

解决方法就是进行解码

原因:.serialize()自动调用了encodeURIComponent方法将数据编码了

解决方法:调用decodeURIComponent(XXX,true);将数据解码

//商品标签
function tag(url){
var form = $(‘form‘).serialize(); //序列化内容
var shuju = decodeURIComponent(form,true); //将数据解码
alert(shuju);
return false;
if(url.indexOf("?") >= 0){
var newurl = url + $(‘form‘).serialize();
window.location.href = newurl;
}else{
var form = $(‘form‘).serialize();
var shuju = decodeURIComponent(form,true);
alert(shuju);
var newurl = url + ‘?‘ + shuju;
window.location.href = newurl;
}
}
 
  //解决办法:将解码方式unscape换为decodeURI
  //原因:浏览器会将url中的中文参数进行encodeURI编码,所以要通过js使用decodeURI进行解码
  var url = decodeURI(location.href);  //decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。

  //jq获取百度编辑器的内容
  var test = editor.getContent();

以上是关于jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 序列化表单数据 serialize() serializeArray()

jQuery 序列化表单数据 serialize() serializeArray()

使用 jquery serialize 和 formvalidation.io 时如何防止表单重复发布?

jQuery 序列化表单数据

jQuery ajax - serialize() 方法-输出序列化表单值

jQuery ajax中serialize()方法增加其他参数