插入数据库之前转换一下编码就可以了。
String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");

解决方案 »

  1.   

    我试了一下,还是不对。
    public Connection connectToDB() throws SQLException {
    try {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    connection = DriverManager.getConnection(               "jdbc:mysql://localhost/vote", "root", "0000");
                      return connection;
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    } //这是连接数据库的代码public boolean add(String id, String pwd) throws SQLException {
    UseMD5 MD5 = new UseMD5();
    try {
    pwd = MD5.MD5(pwd);
    JDBCDriver jdbc = new JDBCDriver();
    conn = jdbc.connectToDB();
    stmt = conn.createStatement();
    String sql = "insert into " + Constants.TABLE_USER + " values('"
    + id + "','" + pwd + "',now())";
    stmt.execute(sql);
    return true;
    } catch (Exception e) {
    e.printStackTrace();
    return false;
    } finally {
    close();
    }
    }  //这是向表插入数据的代码public static void main(String[] args) throws UnsupportedEncodingException {
    UserBean user = new UserBean();
    try {
    String str = "黄志敏";
    String name=new String(str.getBytes("ISO-8859-1"),"GB2312");
    user.add(name, "0000");
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }  //这是main函数
    可是插入的还是乱码
      

  2.   

    我想问一个你的mysql的版本?
      

  3.   

    连接字符串改成这样看看行不行!connection = DriverManager.getConnection(               "jdbc:mysql://localhost/vote?useUnicode=true&characterEncoding=gbk", "root", "0000");
      

  4.   

    我的是mysql4.1.15,安装时编码为gb2312
      

  5.   

    我的是mysql4.1.15,安装时编码为gb2312
      

  6.   

    连接字符串加上useUnicode=true&characterEncoding=gbk还是不行