jquery表单formSerialize方法乱码问题解决

在调用

$('#downloadAttrForm').formSerialize();

时,参数传至后台经常会出现乱码,无论是中文还是时间格式等,解决方法如下所示:

1、因为jquery在调用formSerialize()方法时,内部会自动encodeURIComponent方法,因此在Jsp页面中调用formSerialize()方法后,还需调用decodeURIComponent方法,示例如下所示:

varformData=$("#queryDeptBudgetForm").formSerialize();

formData=decodeURIComponent(formData,true);

 var _url="${path}/cost/queryDeptBudget.do?"+formData;

2、在后台处理传过来的参数时,添加以下代码:

java.net.URLDecoder.decode(params,"UTF-8");

或:

增加公用转码方法,使用该方法:

public static String deCodeURLName(String name) {
        String result = null;
        try {
            result = name != null ? new String(name.getBytes("ISO-8859-1"),"UTF-8") : null;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

相关推荐