解決序列化亂碼問題
阿新 • • 發佈:2019-01-22
通過看jQuery原始碼可以知道,serialize方法是通過encodeURIComponent編碼的,所以解決亂碼的最笨方法:
02 |
1、重新分解序列化後的值 |
03 |
2、把分解的值重新decodeURIComponent回來 |
04 |
3、再重新用escape編碼 |
05 |
4、重新拼接 |
06 |
07 |
function serialize(objs)
|
08 |
{ |
09 |
var
parmString = $(objs).serialize(); |
10 |
var
parmArray = parmString.split( "&" );
|
11 |
var
parmStringNew= "" ;
|
12 |
$.each(parmArray, function (index,data){
|
13 |
var
li_pos = data.indexOf( "=" );
|
14 |
if (li_pos >0){
|
15 |
var
name = data.substring(0,li_pos); |
16 |
var
value = escape(decodeURIComponent(data.substr(li_pos+1)));
|
17 |
var
parm = name+ "=" +value;
|
18 |
parmStringNew = parmStringNew== ""
? parm : parmStringNew + '&'
+ parm; |
19 |
}
|
20 |
});
|
21 |
return
parmStringNew; |