解决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();
注意它的位置哦!!!