今天下午发了几个小时时间,查找response返回到页面的json中的中文总是乱码,在网上也查了很多的资料如
在页面上增加
<%@ page contentType="text/html; charset=GBK" %>
或者在返回的时候增加
response.setCharacterEncoding("GBK");
或
response.setCharacterEncoding("UTF-8");
也加过虑器等等。可是还是没有效果。
我的代码是这样的:
PrintWriter out = response.getWriter();
response.setCharacterEncoding("GBK");
response.setContentType("text/html; charset=GBK");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
out.println(outString);
out.flush();
out.close();
突然想起以前做过类似的都没有乱码,怎么这次就没有办法解决呢???在百思不得其解时看到了
PrintWriter out = response.getWriter();
代码的为怎么放到了response set方法的最下面,索性一下了试了下。
response.setCharacterEncoding("GBK");
response.setContentType("text/html; charset=GBK");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
PrintWriter out = response.getWriter();
out.println(outString);
out.flush();
out.close();
这下果然都正常了,中文显示出来了,这里提醒下大家在以后写代码的时候一定要注意。
PrintWriter out = response.getWriter();
注意它的位置哦!!!