就是中文信息, 
页面显示的用<%@ page contentType ="text/html;charset=gb2312"%>
连接数据库的时候使用了useUnicode=true&characterEncoding=gb2312
还不够,差多少?页面传到form里面,要做什么处理?
bean写入数据库要做什么处理?
数据库读到bean要做什么处理?
bean传到页面要做什么处理?

解决方案 »

  1.   

    数据库乱码解决办法参考: String key2 = servletRequest.getParameter("key");
                String key;
                key = new String(key2.getBytes("ISO-8859-1"), "GB2312");
      

  2.   

    \filters\RequestDumperFilter.class
    \filters\SetCharacterEncodingFilter.class这两个类放在你应用下的WEB-INF\classes 目录下在web.xml中添加:
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>GBK</param-value>
        </init-param>
      </filter>
      <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
      </filter-mapping>然后在页面中传递参数,无论是request还是url中包含中文,均可正确显示,前提是页面设置为中文编码上述两个类在%tomcat_home%\webapp\jsp-examples\ 下可以找到~把gb2312改为
    8859_1
      

  3.   

    连main()方法都不行吗?把代码贴出来看看吧。
      

  4.   

    ///----------------test.java 
    CrossingObject  dataIn = new CrossingObject();
    dataIn.opType          = 11;   
    dataIn.controlIP            = "10.10.25.3";
    dataIn.roadwayCount        =        6;
    dataIn.crossingName         = "中山路";
    ConfirmObject dataOut;
    dataOut                     =       (ConfirmObject)Facade.active(dataIn);
    //-----------------------Facade.java(里有代码如下)
    creater = new AddCrossingCreater();
    bObject   = creater.factory();
    return bObject.dispatch(dataIn);
    //-----------------------AddCrossingCreater.java代码如下:
    public class AddCrossingCreater implements Creater
    {
    public BusinessClass factory()
    {
    return new AddCrossingClass();
    }
    }
    //----------------------AddCrossingClass.java 代码如下:
    try
    {
    dataOut = a.access((CrossingObject)dataIn);
    }
    catch (Exception e)
    {
    System.out.println(e);
    dataOut = new ConfirmObject();
    dataOut.bool = false;
    return dataOut;
    }
    //---------------------AddCrossingBean.java
    public DataObject access(CrossingObject dataIn) throws Exception
    {
    conn=DBBean.getConnection();
             final String sql = "Insert Into CrossingInfo crossingName,controlIP,roadwayCount) values (?,?,?)";

    PreparedStatement  pstm = conn.prepareStatement(sql);
    System.out.println("声明prepareStatement");
    pstm.setString(1,dataIn.crossingName);
    pstm.setString(2,dataIn.controlIP);
    pstm.setInt(3,dataIn.roadwayCount);
    System.out.println("将要执行SQL");
    int count=pstm.executeUpdate();
    System.out.println("执行完SQL");
    if (count<1)
    {
    throw (new Exception());
    }

    DataObject confirm = new ConfirmObject();
    confirm.bool=true;

    pstm.close();
    DBBean.close(conn);

    return confirm;
    }
    //------------------------------DBBean.java代码如下:
    public static Connection getConnection()
    {
         Connection conn=null;
         try
        {
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    conn = DriverManager.getConnection("jdbc:mysql://localhost/EP?user=root&password=123&useUnicode=true&characterEncoding=gb2312");
         }
         catch (Exception e)
        {
    System.out.println(e);
         }
        return conn;
    }
      

  5.   

    这都是每一层涉及到的代码,test里的中山路传进去,数据库里看,乱码了。
      

  6.   

    之所以弄个Facade 是封装好Model.因为Web层上tomcat的访问外,还有另一个应用是Server.java起Socket监听client端的。这是套B/S和C/S混用的系统。
      

  7.   

    在mysql中的mysql。ini文件中把cline等等的字符集改为gb2312就能解决你的问题,我也碰到过你的问题。
      

  8.   

    跟mysql 的设置有问题吗?改mysql.ini??
    我在mysql>里插数据中文是正常的。
      

  9.   

    我监测过,数据库里是中文,Insert之前,还是中文,Insert进去库里就乱码。在数据库里是中文。
    我的result.getString(1);出来就乱码了。
      

  10.   

    上一张贴的,“我检测过,“数据库里是中文”字去掉,我把他减切到下面结果弄成是copy了
    引起误会对不起。
      

  11.   

    既然你都在用struts,为什么抛弃国际化
    全部设成utf-8,需要显示中文或其他非unicode码的地方
    用ApplicationResources来实现。