用MS的JDBC连SQLServer的中文查询问题 我用的是 JSQLConnect 驱动,你试试直接打开数据库看看里面的内容是不是已经乱码了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 进行编码转换String item = new String(item.getBytes("gb2312"),"iso-8859-1"); 编码转换String str=new String(str.getBytes("gb2312"),""8859_1); String str=new String(str.getBytes("gb2312"),"8859_1"); 你把你的select * from DB where item ='中文' sql语句像上面那样转码试试你的MSSQL数据库默认得字符集是什么?? 我的是这样解决的:String str = new String((new String(rs.getString("bh")+"").trim()).getBytes("ISO-8859-1"),"GBK")rs为Resultset结果集,bh为字段名称(编号) MSSQL数据库默认得字符集在那里查看?事实上,我连MySQL数据库的话,在连接url里指定字符集为characterEncoding=8859_1是能够正常查询和显示中文的,但我查了MSSQL的JDBC Driver文档好像不能像MySQL的JDBC Driver那样指定字符集?怎么解决?把那条SQL语句转码我试过不行的。 MSSQL数据库默认得字符集在那里查看?事实上,我连另一个MySQL的数据库是能够正常操作中文的,但连MySQL时我在连接时指定了characterEncoding=8859_1,我查了MS的JDBC Driver文档,好像不能够像MySQL的JDBC那样指定encode,有什么解决办法? 不用指定连接时的characterEncoding,我连接的是直接用JDBCprivate 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); to:flywind63(紫色的偶然)嗯,你这样连的话和我现在连MSSQL是一样的,但是MSSQL好像是默认是gb2312字符集的,这样取出来用rs。getString时就要像你上一贴那样转码了,我想,如果取出来就能指定是iso8859多好 MS的驱动太不好用了,想换一个。请问 onefox(一品狐) ,JSQLConnect驱动去那里找呢?谢谢。 要 JSQLConnect 驱动发邮件给我[email protected] 标题:“求JSQLConnect驱动”(垃圾邮件太多 ^^; ) DOS 中直接运行 main方法 操作数据库 关于Assert的编译问题(在线等) 大数据量如何解决(在线等) 问一个关于jFileChooser的问题 关于treeModel刷新的问题,请高手指教~~~~~~~~~~~~~~~ 问数据库写入问题 事务处理con.setautocommit问题 怎么才能够更新数据库? 字符串表达式解析 URL的问题!!!! 快疯了 动态生成tree的问题!! ★★关于Application、Applet、.exe、GUI几个概念
String item = new String(item.getBytes("gb2312"),"iso-8859-1");
String str=new String(str.getBytes("gb2312"),""8859_1);
String str = new String((new String(rs.getString("bh")+"").trim()).getBytes("ISO-8859-1"),"GBK")
rs为Resultset结果集,bh为字段名称(编号)
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);
嗯,你这样连的话和我现在连MSSQL是一样的,但是MSSQL好像是默认是gb2312字符集的,这样取出来用rs。getString时就要像你上一贴那样转码了,我想,如果取出来就能指定是iso8859多好