我在SERVLET里用PrintWriter out = response.getWriter();
然后用
out.println("<SCRIPT LANGUAGE=\"JavaScript\">\r\n");
out.println("alert(\'中文\');");
out.println("</SCRIPT>\r\n");
中文出现乱码,试了几种方法还是不行,请问这是怎么回事/

解决方案 »

  1.   

    response.setContentType("text/html; charset=UTF-8");
    response.setCharacterEncoding("UTF-8");
      

  2.   

    html/jsp/SERVLET
    所有可一设置编码的地方 全设置 utf-8
      

  3.   

    连 文件编码也设置 为 utf-8
      

  4.   

    要看你的是什么字体,一般是gb2312
    response.setContentType("text/html; charset=gb2312"); 
    response.setCharacterEncoding("gb2312");  
    如果还不行,进行转码
    /***
     * 单纯字符的处理,一个字符串进行编码处理
     * @param str
     * @return
     */
    public static String code(String str){
    //  step 1 编码处理
    String strcode="";
    if(null!=str){     
    try {
       strcode=new String(str.getBytes("ISO8859-1"),"gbk");
    } catch (UnsupportedEncodingException e) { 
    e.printStackTrace(); 
    }
    strcode = str;
    }
    //  step 2  返回处理后的字符串
    return strcode;

      

  5.   

    out.println(" <SCRIPT LANGUAGE=\"JavaScript\">\r\n"); 
    out.println("alert(\'中文\');"); 
    out.println(" </SCRIPT>\r\n"); 
    之前加一句 out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
    试试
      

  6.   

    要把
    response.setContentType("text/html; charset=UTF-8"); 
    response.setCharacterEncoding("UTF-8"); 
    写在
    PrintWriter out = response.getWriter(); 
    之前
      

  7.   

    实在是晕.为什么CSDN 里到外都是这问题.我有一个全解决的.
    发了N次了..呵
    必解决中文问题 
    1.在Tomcat   的server.xml   中 
    有 
    <Connector   port= "8080 "   maxHttpHeaderSize= "8192 " 
                                  maxThreads= "150 "   minSpareThreads= "25 "   maxSpareThreads= "75 " 
                                  enableLookups= "false "   redirectPort= "8443 "   acceptCount= "100 " 
                                  connectionTimeout= "20000 "   disableUploadTimeout= "true "   URIEncoding= "gbk "   /> 2.Filter   
    <?xml   version= "1.0 "   encoding= "UTF-8 "?> 
    <web-app   version= "2.4 "   
    xmlns= "http://java.sun.com/xml/ns/j2ee "   
    xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance "   
    xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee   
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd "> 
    <filter> 
            <filter-name> setCharacterEncodingFilter </filter-name>         
            <filter-class> asp.SetCharacterEncodingFilter </filter-class> 
            <init-param> 
                <param-name> encoding </param-name> 
                <param-value> GBK </param-value> 
            </init-param> 
        </filter> 
        <filter-mapping> 
            <filter-name> setCharacterEncodingFilter </filter-name> 
            <url-pattern> /* </url-pattern> 
        </filter-mapping> 
    </web-app> package   asp; 
    import   java.io.IOException; 
    import   javax.servlet.Filter; 
    import   javax.servlet.FilterChain; 
    import   javax.servlet.FilterConfig; 
    import   javax.servlet.ServletException; 
    import   javax.servlet.ServletRequest; 
    import   javax.servlet.ServletResponse; 
    public   class   SetCharacterEncodingFilter   implements   Filter 

    /** 
      *   Example   filter   that   sets   the   character   encoding   to   be   used   in   parsing   the   incoming   request 
      */ 
    /** 
      *   Take   this   filter   out   of   service. 
      */ 
    public   void   destroy() 


    /** 
      *   Select   and   set   (if   specified)   the   character   encoding   to   be   used   to   interpret   request   parameters   for   this   request. 
      */ 
    public   void   doFilter(ServletRequest   request,   ServletResponse   response,   FilterChain   chain)   throws   IOException,   ServletException 

    //   response.setCharacterEncoding( "UTF-8 "); 
    request.setCharacterEncoding( "GB18030 "); 
    chain.doFilter(request,   response); 

    public   void   init(FilterConfig   filterConfig)   throws   ServletException 



    3.每个页面 <%@   page   contentType= "text/html;   charset=gb2312 "   language= "java "     errorPage= " "   %> 一切就OK.. 
    如果用Ajax 
    那么.在保证前三个部份的前题下. get   不变 
    post   使用两次encodeURI 
    function   createPostDo(/*条件*/,actionUrl)/*Ajax   post   第二步   将Post的条件格式发送到指定的URL*/ 
    {     
        post   =   encodeURI(/*条件*/); 
        post   =   encodeURI((/*条件*/);//两次,很关键 
        var   xmlObj   =   new   ActiveXObject( 'Msxml2.XMLHTTP '); 
        var   URL   =   actionUrl;//文件名需要调整成测试时的相应位置? 
        xmlObj.open   ( 'post ',URL,false); 
        xmlObj.setrequestheader( "cache-control ", "no-cache ");   
        xmlObj.setrequestheader( "Content-Type ", "application/x-www-form-urlencoded "); 
        xmlObj.send   (post);//注意:POST方式,使用这个来发送内容? 
    }
      

  8.   

    要把 
    response.setContentType("text/html; charset=UTF-8"); 
    response.setCharacterEncoding("UTF-8"); 
    写在 
    PrintWriter out = response.getWriter(); 
    之前这个是正解.一定要写在前面,否则和不写一样.