我使用Navicat Lite8进行MYSQL数据库和表的建立,然后用JAVA进行数据的添加
当数据添加进入数据库后,英文和数字都可以显示,但是中文就会变成??
我感觉是字符集用的不对
在使用Navicat Lite8进行数据库的创建时,会有两个选项,分别是Character set和Collation
前者我试过了BIG5,gb2312,gbk,utf8,当选用utf8时,Collation的选项非常多,我就随便选了几种分别试了,但是都是不行,中文一直是显示??
而英文和数字都是正常
还有一点很奇怪,我直接用Navicat Lite8添加中文数据,select出来的中文就可以显示
请问下,这个问题如何解决,希望能讲的详细点,我是新手,最好别太深奥

解决方案 »

  1.   

    数据的插入,我是直接在JAVA里做的,下面是相关代码
    String sql = "insert into guest values(?,?,?,?,?,?,?,?)";
    PreparedStatement ps = con.prepareStatement(sql);
    ps.setInt(1, id);
    ps.setString(2, fname.getText().trim());
    ps.setString(3, faddress.getText().trim());
    ps.setString(4, fkind.getText().trim());
    ps.setString(5, ftrade.getText().trim());
    ps.setString(6, fnumber.getText().trim());
    ps.setString(7, femail.getText().trim());
    ps.setString(8, fbusiness.getText().trim());
    int r = ps.executeUpdate();
    if(r > 0)
    {
    //弹出一个对话框
    JOptionPane.showMessageDialog(null,"添加成功");
    }
    else
    {
    JOptionPane.showMessageDialog(null,"添加失败");
    }
    ps.close();
      

  2.   


    //在mysql下执行下面语句试一下
    set names 'gbk'
      

  3.   

    楼主,我怀疑不是数据库的编码格式问题,应该是你从页面获取数据时就出了问题。
    你设置个断点在你程序,看你的从request中接受的是不是乱码!
      

  4.   

    my.ini中
    default-character-set=utf8
    好像有两处都要改,试试看
      

  5.   

    连接数据库的时候,在连接的url上加上这句:
    &useUnicode=true&characterEncoding="utf-8"
     
     
      

  6.   

    建议你先直接使用navicat插入一条记录,看是否有乱码。如果有就是数据库编码的问题,可以编辑数据表,右键电击相应字段,设置它的编码。如果正常,在看看你的编码。
      

  7.   

    mysql的编码是挺多的。一个是你的数据库的编码,然后是你表的编码,然后是你的列的编码。然后是你用jdbc连接数据库时的useUnicode=true&characterEncoding=gbk
      

  8.   

    在Navicat中鼠标右击数据库名-->连接属性-->高级中,去掉使用mysql字符集前面的勾号,在上面的编码中选择65001(utf-8),然后再将使用mysql字符集前面的勾号打上。
      

  9.   

    选utf8,然后jdbc url后面加上 characterEncoding=utf8
      

  10.   

    页面编码改成"utf-8"   就OK 了
      

  11.   

    直接用navicat插入中文数据,是可以的,中文可以显示,就是用上面我发的代码段进行中文数据的添加,在数据库里就是“??”
      

  12.   

    最主要是在安装MySQL的时候要选择GBK的编码
      

  13.   

    修要将unicode转换成GBK或者gb2312
      

  14.   

    应该是URL的配置
    jdbc:mysql://localhost:3306/dultscoreuseUnicode=true&characterEncoding=gbk"
    还有(从doc下查表时,如果不设置,看到的都是??,但是对程序没有影响)
    mysql下有个my.ini的文件
    里面这句话,default-character-set=GBK