我利用jquery 和dom4j做了一个小ajax实验 实验成功 但是中文乱码 总是显示 ??????我觉得问题是处在response上 所以我直接用response.write方法写中文,传回到本地都是 ????
请问 应该怎样解决
 public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        PrintWriter printWriter = response.getWriter();
        response.setHeader("Content-Type", "text/xml ; charset=utf-8");
        response.setContentType("text/xml ; charset=utf-8");
        response.setCharacterEncoding("text/xml ; charset=utf-8");
    
        Document  document =DocumentHelper.createDocument();       
        Element rootElement = document.addElement("person");       
      count++;
      Element messagElement = rootElement.addElement("message");
      String str ="登录用户名"+name+"在线人数:"+count;
      byte[] bytes = str.getBytes("utf-8");
      String returnstring = new String(bytes,0,bytes.length,"utf-8");
      System.out.println(returnstring);
      messagElement.setText(returnstring);
        OutputFormat format = OutputFormat.createCompactFormat();
        format.setEncoding("utf-8");
        
        XMLWriter xmlWriter = new XMLWriter(printWriter,format);
        
        xmlWriter.write(document);
        printWriter.flush();

解决方案 »

  1.   

    记事本 打开文件,另存为 编码 选 utf-8 试试
      

  2.   

    request.setCharacterEncoding("utf-8");试试
      

  3.   

    刚才看错了。。
    把东西都修改到dopost方法里面。
     doGet里面写东西就有可能出现乱码。 我也出现过类似问题。
      

  4.   

    以前碰到过这种情况,
    如果页面 都改过了。那就是这个东西的问题,
    好像 PrintWriter printWriter = response.getWriter();
    有变过编码。换个位置还是怎么搞一下就好了,具体是怎么搞忘记了,试试吧