解决response返回字符串乱码有关问题

解决response返回字符串乱码问题

今天下午发了几个小时时间,查找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();

注意它的位置哦!!!