先描述一下当时的情况,ajax异步请求数据,本地eclipse启动,页面接收到数据不会乱码,但是把工程部署到jboss就乱码了,开始以为是jboss的问题了,改了server.xml不行,然后以后是打包的问题,在pom.xml文件指定了打包编码为UTF-8,还是不行,郁闷了好久。最后修改了一下数据输出的代码,注释的为原来的代码(jboss会乱码),接下来的四行是改过的代码,jboss也就不会乱码了。
private boolean print2web(String content) { PrintWriter out = null; try { // out = ServletActionContext.getResponse().getWriter(); // ServletActionContext.getResponse().setContentType("application/json"); // ServletActionContext.getResponse().setCharacterEncoding("UTF-8"); ServletActionContext.getRequest().setCharacterEncoding("utf-8"); //这里不设置编码会有乱码 ServletActionContext.getResponse().setContentType("application/json;charset=utf-8"); ServletActionContext.getResponse().setHeader("Cache-Control","no-cache"); out = ServletActionContext.getResponse().getWriter(); out.write(content); out.flush(); out.close(); return true; } catch (Exception e) { e.printStackTrace(); } finally { out.flush(); out.close(); } return false; }