我写了一个Servlet,用其向html页面输出一句话(注意:其中有中文),显示错误;
Servlet的service方法:
    protected void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
                    response.setCharacterEncoding("GB2312");
         ServletOutputStream out=response.getOutputStream();  //输出到客户端
          out.println("<title>Servlet的service方法</title>");
         out.println("显示:I am in Service()");
    }
错误信息:
HTTP Status 500 - 
--------------------------------------------------------------------------------
type Exception reportmessage
 
description The server encountered an internal error () that prevented it from fulfilling this request.exception java.io.CharConversionException: Not an ISO 8859-1 character: 的
javax.servlet.ServletOutputStream.print(ServletOutputStream.java:89)
javax.servlet.ServletOutputStream.println(ServletOutputStream.java:242)
sql.com.ServiceServlet.service(ServiceServlet.java:19)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
我找不到是哪的编码出了问题,
哪位高手给指导指导啊!!!!!!!

解决方案 »

  1.   

    lz换个输出啥,我
    PrintWriter out = response.getWriter();
    out.print("内容");
    out.flush();
    out.close();
    out = null;
      

  2.   

    我试了试
    response.setCharacterEncoding("gb2312");
    PrintWriter out = response.getWriter(); 
    out.print("内容"); 
    out.flush(); 
    out.close(); 
    out = null;
    是可以输出,但编码不对啊!!!!
    好像是Unicod(UTF-8)  怎样变为GB2312编码啊?(response.setCharacterEncoding("gb2312");怎么不起作用啊)
    另外,我如果想用我原来的方法(即ServletOutputStream out=response.getOutputStream();),有没有办法改正啊!!!