在Java中访问Sybase数据库时,如果查询条件中有汉字如何处理?请大家看看我的程序那块有问题.

大家好,我在Java程序中执行如下语句

String cls = "com.sybase.jdbc2.jdbc.SybDriver";
String url = "jdbc:sybase:Tds:10.11.111.4:4100/lkmis?charset=cp850&jconnect_version=0";
String user = "test";
String passwd = "test";

Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
Connection conn = DriverManager.getConnection(url, user, passwd);
Statement stat = conn.createStatement();

String sql="select * from test where C_MC LIKE '%计算机'";
ResultSet rs=stat.executeQuery(sql);

System.out.println("rs.next() is "+rs.next());

rs.next()的返回值是false,但这个SQL我在sqlAdvantage中是可以查出记录来的,把C_MC这个查询条件去掉也可以查出记录可。请问大家,在查询条件中有汉字的话,有什么要特别注意的地方吗?
[703 byte] By [shi_hang_nk-shi_hang_nk] at [2008-1-9]
# 1
数据库是11.92
shi_hang_nk-shi_hang_nk at 2007-10-19 > top of Msdn China Tech,其他数据库开发,Sybase...
# 2
没遇到过,会不会是JDBC驱动的bug?
sybasedba at 2007-10-19 > top of Msdn China Tech,其他数据库开发,Sybase...
# 3
查询的时候要把汉字转换成数据库的数据编码格式
如:假如字符集是iso-1

String name = new String(request.getParameter("计算机").getBytes("gb2312"),"iso-8859-1");
String sql="select * from test where C_MC LIKE '"+name+"'";
tigerleq at 2007-10-19 > top of Msdn China Tech,其他数据库开发,Sybase...
# 4
查询的时候要把汉字转换成数据库的数据编码格式
如:假如字符集是iso-1
String nametemp = "计算机";
String name = new String(nametemp.getBytes("gb2312"),"iso-8859-1");
String sql="select * from test where C_MC LIKE '"+name+"'";
tigerleq at 2007-10-19 > top of Msdn China Tech,其他数据库开发,Sybase...
# 5
Nod. 楼上的说的对。
iihero-iihero at 2007-10-19 > top of Msdn China Tech,其他数据库开发,Sybase...