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 时如何防止表单重复发布?