前先日子做文学项目时,需要对投票功能实现无刷新功能.在返回投票结果的时候,出现乱码,经过查询相关资料,终于找出原因,原来是代码顺序问题.
代码改之前为:
PrintWriter out = response.getWriter();
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/xml;charset=UTF-8");
当初写的时候没细想.以为得到输出流,准备写到页面的时候,就把编码设置一下就行了.然而问题就出在这里.response.getWriter()的默认编码是ISO-5988-1,上面代码在没有设置response的编码时候,就已经获取了输出流out,因此,它在没有指定编码时就用默认编码.它是不能被转码成GB2312,UTF-8的,此时,返回结果有中文时,就会出现乱码.
代码修改之后: esponse.setContentType("text/xml;charset=UTF-8");
PrintWriter out = response.getWriter();
response.setHeader("Cache-Control", "no-cache");