jquery $("#form").serialize()傳中文亂碼解決方法
阿新 • • 發佈:2019-01-26
jquery form表單.serialize()序列化後中文亂碼問題原因及解決
原因:.serialize()自動呼叫了encodeURIComponent方法將資料編碼了
解決方法:呼叫decodeURIComponent(XXX,true);將資料解碼
例如:
var params = jQuery("#formId").serialize(); // http request parameters.
params = decodeURIComponent(params,true);
再進行編碼
params = encodeURI(encodeURI(params));
後臺
params = java.net.URLDecoder.decode(params , "UTF-8");
問題解決。
附js示例
function submitForm(){
var params= jQuery('#form').serialize();
params= decodeURIComponent(params,true);
params= encodeURI(encodeURI(params));
jQuery.ajax({
url:"test.shtml?r="+ Math.random(),
type:"post",
data:params,
success:function(msg){
alert(msg);
}
});
}