我的mysql数据库的字符集是utf-8
我需要用java插入一条数据在数据中不显示乱码
java代码:
String s = "中国";
stmt2.executeUpdate("insert into bb.city values('"+s+"')");
以上代码显示的效果为乱码,怎么能在数据库中能直接看到中文。
以下方法试过了,不行
1.s= new String(s.getBytes("iso8859-1"),"gbk");
2.s= new String(s.getBytes("iso8859-1"),"utf-8");

解决方案 »

  1.   

    你的sql语句需要转换编码 在写程序的时候 用的是编辑器的编码方式,utf-8或者gbk。
    送入数据库之前应该把它转变为数据库的编码iso8859-1.
    所以
    String s = "中国";
    String sql="insert into bb.city values('"+s+"')";
    sql = new String(sql.getBytes("gbk"), "iso8859-1");
    //或者 sql = new String(sql.getBytes("utf-8"), "iso8859-1");
    stmt2.executeUpdate(sql);
      

  2.   

    这多大关系,想查看数据库中的中文数据执行下面的命令就可以了。
    charset gbk
    再用查询语句可以看到插入的结果
      

  3.   

    <param name="url"
    value="jdbc:mysql://192.168.8.4:3306/iplugserver?characterEncoding=utf8" />