我的表是这么建的
CREATE TABLE test (
  Id int(6) NOT NULL auto_increment,
  name varchar(10) binary,
  sex varchar(4) binary,
  birthday date default '0000-00-00',
  PRIMARY KEY  (Id)
) DEFAULT CHARSET=GBK;

解决方案 »

  1.   

    要用gb2312
    String.getByte()方法
      

  2.   

    这个问题已经有人问过了
    在my.ini中设置mysql的编码就行了
    #Set the default character set.
    default-character-set=gb2312
      

  3.   

    这个问题已经有人问过了
    在my.ini中设置mysql的编码就行了
    #Set the default character set.
    default-character-set=gb2312这个我也看到过,可是我没有找到my.ini文件
    我用的mysql5.0
      

  4.   

    用getConnection("jdbc:mysql://localhost:3306/dictionary?user=root&password=&useUnicode=true&characterEncoding=gb2312")试试
      

  5.   

    mysql默认得编码是8859_1 ,insert 的时候 要把GBK转换成8859_1 ,从mysql读取数据则相反eg:String str_name="罗俊";
    String str_sex="男";
    str_name = new String(str_name.getBytes(),"8859_1");
    str_sex = new String(str_sex.getBytes(),"8859_1");
    // SQL statement is here
    String sql="insert into student (id,name,sex,birthday) values (20012050101,?,?,1983/02/01);";
    PreparedStatement stmt=con.prepareStatement(sql);
    stmt.setString(1,str_name);
    stmt.setString(2,str_sex);
                            
    stmt.addBatch();
    stmt.executeBatch();
      

  6.   

    修改你的web.xml,如果你的服务器是Tomcat的话,在4.0以后中有个SetCharacterFilter的过滤器类,将这个类添加到你的WEB-INF/classes中,然后在修改web.xml,设置这个过滤器类,并初始化其中的encoding参数为GB2312就可以了。
      

  7.   

    问题还是没有解决
    my.ini是这样吗?#This File was made using the WinMySQLAdmin 1.4 Tool
    #2004-6-18 7:27:51#Uncomment or Add only the keys that you know how works.
    #Read the MySQL Manual for instructions[mysqld]
    basedir=D:/mysql
    #bind-address=10.68.13.36
    datadir=D:/mysql/data
    #language=D:/mysql/share/your language directory
    #slow query log#=
    #tmpdir#=
    #port=3306
    #set-variable=key_buffer=16M
    #Set the default character set. default-character-set=gb2312
    [WinMySQLadmin]
    Server=D:/mysql/bin/mysqld-nt.exe
    user=caixp
    password=19780306