应该是和你网页的编码有关系.你可以试一下将程序改成:先将  %王% 编码指定为ISO编码.再执行 select * from tb_user where user_nm like XXX应该就没有问题了.

解决方案 »

  1.   

    把数据库编码设定为GBKweb环境编码设定为GBK
      

  2.   

    这种问题主要是字符编码的问题,因为‘王’字在你的sqlserver 、tomcate 中的编码肯定是不一样的。在 tomcate估计是UTF-8编码,而在sqlserver中可能是GB2312的,两个地方的编码规则不一样,你又没有转换,查询的时候当然会出问题。
    自己写个方法把字符转换成GB2312方式。
      

  3.   

    标准的中文问题,tomcat5里面有个类SetCharacterEncodingFilter.java可以处理中文。
      

  4.   

    sql中可以有中文的,你可以在查询分析器里试一下,是绝对没有问题的.
    你遇到无非就是编码的问题
      

  5.   

    <%@ page import="java.sql.*"%>
    <?xml version="1.0" encoding="GB2312"?> 
    <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" 
    "http://www.wapforum.org/DTD/wml_1.1.xml"> 
    <wml> 
      <card id="wapzj" title="企业招聘">
        <p align="center"></p> 
        <p> 
    <%
            String strCont,strLink,strCompany;
            byte[] tmCont;        strCompany=request.getParameter("Company");         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url="jdbc:microsoft:sqlserver://61.175.199.130:1433;DatabaseName=SMSZJCom";
    String user="sa";
    String password="@12chemnet15%";
    Connection conn= DriverManager.getConnection(url,user,password);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
            String strSQL="select * from hire where company='";
            
      tmCont = strCompany.getBytes("ISO8859_1");
    strCompany = new String(tmCont,"GB2312");
            strSQL=strSQL+ strCompany+"'";        ResultSet rs=stmt.executeQuery(strSQL);        while(rs.next())
    {
               strCont = rs.getString(3); 
       tmCont = strCont.getBytes("GB2312");
       strCont = new String(tmCont,"ISO8859_1"); 
               strLink="<a href=index.jsp>";
               strLink=strLink+strCont+"</a>"+"<br>";
               out.println(strLink);
            }
    %>
    </p>
    </card>
    </wml>