日期:2014-05-16  浏览次数:20623 次

解决ajax乱码问题

今天写ajax返回xml,发现返回中文乱码,仔细检查,发现各处编码方式都是utf8,可是为什么会乱码呢?

纠结了一个小时,终于发现问题,源代码如下:

Java代码??收藏代码
  1. PrintWriter?out?=?response.getWriter();??
  2. ????????????????response.setCharacterEncoding("UTF-8");??
  3. ????????????????response.setContentType("text/xml;?charset=UTF-8");??
  4. ????????????????response.setHeader("Cache-Control",?"no-cache");??

?

仔细检查发现,原来out在定义之后才给response设置编码方式,这样out还是按照原来的编码方式进行传输。解决办法就是将out定义在设置编码方式的下面,以前总是感觉有这几句话就够了,也没注意这个顺序的问题,今天在这纠结了半天。现在把正确的代码放到下面:

Java代码??收藏代码