首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

生成的静态页面是乱码?

2011-12-10 
生成的静态页面是乱码??这是在网上找到的,生成静态页面的代码,只是生成的静态页面全是乱码?请高手指教!imp

生成的静态页面是乱码??
这是在网上找到的,生成静态页面的代码,只是生成的静态页面全是乱码?请高手指教!  
import       java.io.ByteArrayOutputStream;      
    import       java.io.FileOutputStream;      
    import       java.io.IOException;      
    import       java.io.OutputStreamWriter;      
    import       java.io.PrintWriter;      
       
    import       javax.servlet.RequestDispatcher;      
    import       javax.servlet.ServletContext;      
    import       javax.servlet.ServletException;      
    import       javax.servlet.ServletOutputStream;      
    import       javax.servlet.http.HttpServlet;      
    import       javax.servlet.http.HttpServletRequest;      
    import       javax.servlet.http.HttpServletResponse;      
    import       javax.servlet.http.HttpServletResponseWrapper;      
       
    public       class       toHtml       extends       HttpServlet      
    {      
       
                    public       void       service(HttpServletRequest       request,       HttpServletResponse       response)       throws       ServletException,       IOException      
                    {      
                    String       url= " ";      
                    String       name= " ";      
                       
                                    ServletContext       sc       =       getServletContext();      
                                       
                                    String       file_name=request.getParameter( "file_name ");//你要访问的jsp文件,如index.jsp      
            //则你访问这个servlet时加参数.如http://localhost/toHtml?file_name=index      
       
                                    url       =       "/ "+file_name+ ".jsp ";//这是你要生成HTML的jsp文件,如      
                                                                                                                                                //http://localhost/index.jsp的执行结果.      


       
                                    name= "/home/resin/resin-2.1.6/doc/ "+file_name+ ".htm ";//这是生成的html文件名,如index.htm.      
                                                                       
                                    RequestDispatcher       rd       =       sc.getRequestDispatcher(url);      
                                       
                                    final       ByteArrayOutputStream       os       =       new       ByteArrayOutputStream();      
                                       
                                    final       ServletOutputStream       stream       =       new       ServletOutputStream()      
                                    {      
                                                    public       void       write(byte[]       data,       int       offset,       int       length)      
                                                    {      
                                                                    os.write(data,       offset,       length);      
                                                    }      
       
                                                    public       void       write(int       b)       throws       IOException      
                                                    {      


                                                                    os.write(b);      
                                                    }      
                                    };      
                                       
                                    final       PrintWriter       pw       =       new       PrintWriter(new       OutputStreamWriter(os));      
                                       
                                    HttpServletResponse       rep       =       new       HttpServletResponseWrapper(response)      
                                    {      
                                                    public       ServletOutputStream       getOutputStream()      
                                                    {      
                                                                    return       stream;      
                                                    }      
                                                       
                                                    public       PrintWriter       getWriter()      
                                                    {      
                                                                    return       pw;      


                                                    }      
                                    };      
                                    rd.include(request,       rep);      
                                    pw.flush();                                  
                                    FileOutputStream       fos       =       new       FileOutputStream(name);       //把jsp输出的内容写到xxx.htm      
                                    os.writeTo(fos);      
                                    fos.close();      
                                    PrintWriter       out=response.getWriter();      
                                    out.print( " <p       align=center> <font       size=3       color=red> 首页已经成功生成!Andrew </font> </p> ");      
                    }      
    }

[解决办法]
设置response对象:
response.setContentType( "text/html;charset=gb2312 ");
务必在声明PrintWriter out=response.getWriter(); 之前设置即可
[解决办法]
iso8859_1?
不出乱码就怪了。
加上request.setCharacterEncoding( "GBK ");~
就可以了。
[解决办法]
request.setCharacterEncoding( "GBK ");
[解决办法]
是response 不是request,..
[解决办法]
1.设置响应类型
response.setContentType( "text/html;charset=gb2312 ");
2.怀疑是从外部文件中文读的时候还需要转码
String source_string;
String target_string;

target_string = new String(source_string.getBytes( " <source_encoding> "));

不知道对不对,你试试看吧,

热点排行