有时候我们需要使用 Ajax 提交去提交 form 的值, 这样就需要使用 serialize() 去获取 form 的值, 但这样获取的值如果有中文, 会乱码. 这个是什么原因? 怎么解决?
原因:.serialize() 自动调用了 encodeURIComponent 方法将数据编码了
解决方法: 调用 decodeURIComponent(XXX,true); 将数据解码
如:
- var params = jQuery("#formId").serialize(); // http request parameters.
- params = decodeURIComponent(params,true);
将 jQuery.JS 文件中的 encodeURIComponent 替换为 encodeURI. 即可解决中文乱码.
还有一种方式将所有 jsp,xml 的字符集都设置为 UTF-8 .
- JSP
- <%@ page language="java" contentType="text/html; charset=UTF-8"%>
- xml
- <?xml version="1.0" encoding="UTF-8"?>
来源: http://www.css88.com/qa/jquery/15677.html