昨天遇到了ajax提交页面中文乱码问题。
jsp页面中设置了 <%@ page contentType="text/html; charset=GBK" %>
ajax请求action action中没有做任何设置
现象:页面原文字全部正常显示,但是ajax请求过来的数据全部乱码。
解决办法:在action中设置response.setContentType("text/html; charset=GBK");
直接向浏览器传送内容时一定要设置编码及内容类型,他的作用相当于<%@ page contentType="text/html; charset=GBK" %>
他的作用就是保证页面本身的文字正常,并不包括js访问通道。用js访问action,并没有通过页面,是ajax的通道,所以要在action中设置它。
以上是我个人的理解和解决办法,若有错误,还望指教。