我用的是 JSQLConnect 驱动,你试试直接打开数据库看看里面的内容是不是已经乱码了?

解决方案 »

  1.   

    进行编码转换
    String item = new String(item.getBytes("gb2312"),"iso-8859-1");
      

  2.   

    编码转换
    String str=new String(str.getBytes("gb2312"),""8859_1);
      

  3.   

    String str=new String(str.getBytes("gb2312"),"8859_1");
      

  4.   

    你把你的select * from DB where item ='中文' sql语句像上面那样转码试试你的MSSQL数据库默认得字符集是什么??
      

  5.   

    我的是这样解决的:
    String str = new String((new String(rs.getString("bh")+"").trim()).getBytes("ISO-8859-1"),"GBK")
    rs为Resultset结果集,bh为字段名称(编号)
      

  6.   

    MSSQL数据库默认得字符集在那里查看?事实上,我连MySQL数据库的话,在连接url里指定字符集为characterEncoding=8859_1是能够正常查询和显示中文的,但我查了MSSQL的JDBC Driver文档好像不能像MySQL的JDBC Driver那样指定字符集?怎么解决?把那条SQL语句转码我试过不行的。
      

  7.   

    MSSQL数据库默认得字符集在那里查看?事实上,我连另一个MySQL的数据库是能够正常操作中文的,但连MySQL时我在连接时指定了characterEncoding=8859_1,我查了MS的JDBC Driver文档,好像不能够像MySQL的JDBC那样指定encode,有什么解决办法?
      

  8.   

    不用指定连接时的characterEncoding,我连接的是直接用JDBC
    private String databaseName = ""
    ResultSet rs;
    private String user = "";
    private String password = "";
    private String server = "";
    private String driverstr="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    private String url;
    private String name;url="jdbc:microsoft:sqlserver://"+server+":1433;DatabaseName="+databaseName;
    Class.forName(driverstr);
    Connection conn= DriverManager.getConnection(url,user,password);
    Statement stmt=conn.createStatemen(ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
    //strqry为实际的SQL语句
    rs = stmt.executeQuery(strqry);
      

  9.   

    to:flywind63(紫色的偶然)
    嗯,你这样连的话和我现在连MSSQL是一样的,但是MSSQL好像是默认是gb2312字符集的,这样取出来用rs。getString时就要像你上一贴那样转码了,我想,如果取出来就能指定是iso8859多好
      

  10.   

    MS的驱动太不好用了,想换一个。请问 onefox(一品狐) ,JSQLConnect驱动去那里找呢?谢谢。
      

  11.   

    要 JSQLConnect 驱动发邮件给我[email protected]    标题:“求JSQLConnect驱动”(垃圾邮件太多 ^^; )