一、
 (1)window 2000 server +Tomcat 5.0 + jdk1.4.2 运行如下代码:
     <%@ page contentType="text/html; charset=gb2312"%>
     <%@ page info="显示用户注册信息页"%>
     <%
       String username  = request.getParameter("username");
       String gender    = request.getParameter("gender");
       String interest  = request.getParameter("interest");       interest = new String(interest.getBytes("ISO8859_1"),"GBK"); //(1)
       gender   = new String(gender.getBytes("ISO8859_1"),"GBK");   //(2)
       username = new String(username.getBytes("ISO8859_1"),"GBK"); //(3)
     %>
     <html>
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     <title>无标题文档</title>
     </head>     <body>
     <%
        //显示用户注册的信息
       out.print("恭喜您注册成功!以下是您的注册信息:<p>");
       out.print("用户名:"+username+"<br>");
       out.print("性别:"+gender+"<br>");
       out.print("兴趣:"+interest+"<br>");
     %>
     </body>
     </html>
     此时,显示正常,如下:
        用户名:李小天
        性别:男
        兴趣:我是一名电脑爱好者     如果把上面的(1)(2)(3)注释掉,也就是不进行编码转换,则得:
        用户名:?????ì?????ì
        性别:??
        兴趣:????????????°?????  (2)window 2000 server +resin-3.0.8 + jdk1.4.2 运行上面的代码结果与Tomcat 5.0下的结果恰恰相反:
     直接运行上机的代码的结果:
        用户名:??????
        性别:?
        兴趣:?????????
     如果把上面的(1)(2)(3)注释掉,也就是不进行编码转换,则得:
        用户名:李小天
        性别:男
        兴趣:我是一名电脑爱好者郁闷.................................二、
  page1.jsp代码如下:
  <%
    String msg="我是一个jsp初学者";
  %>   page2.jsp代码如下:
   <%@ page contentType="text/html; charset=gb2312"%>
   <%@ page import="java.util.*" %>
   <%@ include file="page1.jsp" %>
   <%
     out.print(msg);
   %>
   在“window 2000 server +Tomcat 5.0 + jdk1.4.2”下运行得
     ????????jsp???§??
     如果我不用page1.jsp,我把msg直接定义在page2.jsp中,则可以得到正确的结果。
   可是上面page1.jsp和page2.jsp在“window 2000 server +resin-3.0.8 + jdk1.4.2”下面运行,就可以得到正确的结果。
狂郁闷.........................
请大家帮我解释一下,是不是我的Tomcat 5.0中的配置有问题啊,我用的是装好后默认的,
我是初学者,如果是配有问题,那应该如何配呢?

解决方案 »

  1.   

    <%
           request.setCharacterEncoding("gb2312"); 
           String username  = request.getParameter("username");
           String gender    = request.getParameter("gender");
           String interest  = request.getParameter("interest");
    %>
      

  2.   

    request.setCharacterEncoding("gb2312"); 
    tomcat5.29.0  不能使用!
      

  3.   

    request.setCharacterEncoding("gb2312"); 
    在<% %>开头加上上面这一句,就可以保证该页面中字符编码格式
      

  4.   

    谢谢楼上三位,我在resin
      request.setCharacterEncoding("gb2312"); 加不加这句,结果中文都不显示乱码,tomcat我还没有测试,因为只有我家里的机子上装了tomcat,我晚上回去一试,不过我想应该也没有问题。楼上三位我分别把你们的分留下:
       wsk_228(qing_feng):20分
       viano(有心就有翼,我想我能.......):10分
       OnlyFor_love(【光在哪里,荣耀就在哪里】):20分我接着问上面的第二个问题啊,第二个问题是最让我郁闷的,还剩下50分,如果分不够,我可以重新开贴答谢,望大家帮我解决一下啊...  具体问题见上面问题中的  ( 二、)
      

  5.   

    <%@ page contentType="text/html; charset=gb2312"%>
    这一句改为:
         <%@ page contentType="text/html; charset=gbk"%>
    保证ok
      

  6.   

    要是你在page1.jsp也定义编码格式,那应该就没问题了
      

  7.   

    原来用的就是<%@ page contentType="text/html; charset=gbk"%>
    不行,我才全都改成<%@ page contentType="text/html; charset=gb2312"%>的。难道是我昨天晚上测试的时候搞错了?!我晚上回去再试一下,如果大家不是同时熟悉两种环境的,可以说出自己在所用环境中的解决方案: 象这种情况:   page1.jsp代码如下:
      <%
        String msg="我是一个jsp初学者";
      %>   page2.jsp代码如下:
       <%@ page contentType="text/html; charset=gb2312"%>
       <%@ page import="java.util.*" %>
       <%@ include file="page1.jsp" %>
       <%
         out.print(msg);
       %>   上述代码在Tomcat 5.0,大家的中文部分是否出现乱码?又是如何解决的呢?
      

  8.   

    to: chaucer518(喜欢凤晓的男生)    如何在page1.jsp也定义编码?    我在pages1.jsp的顶部加上<%@ page contentType="text/html; charset=gb2312"%>
     报多次定义错误。
      

  9.   

    file.encoding值你看一看(out.print(System.getProperty("file.encoding"))),tomcat应该是iso8859-1,resin下应该是GBK/GB2312.
    假如是这样的话,请确定,传入参数的那个页面,页面的meta编码是不是没有设置,设置成GB2312应该就可以解决问题.
      

  10.   

    meta编码应该如何设,你说的是<meta http-equiv="Content-Type" content="text/html; charset=gb2312">吗?
      

  11.   


    Java的编码,确实比较乱不同的平台,结果也不同.
      

  12.   

    第二个问题,你把<%@ page contentType="text/html; charset=gb2312"%>放在page1.jsp应该可以解决.
      

  13.   

    结贴吧楼主:
    page1.jsp
     <%@ page contentType="text/html; charset=gb2312"%>
     <%
        
        String msg="我是一个jsp初学者每天进步一点点";
      %>page2.jsp
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.util.*" errorPage="" %>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
       <%@ include file="page1.jsp" %>
       <%
              out.print(msg);
       %>
      

  14.   

    楼上的,你在tomcat5.0下测试通过了吗?我昨天试,它说我重定义,我晚上再回去试一下吧。
      

  15.   

    我已测试过了,我在page1.jsp里加上
     <%@ page contentType="text/html; charset=gb2312"%>
    OK了,可能是我昨天晚上搞错了^_^