sql语句中有中文的问题

xingangwang 2004-10-10 03:28:20
sqlserver + tomcate :
在jsp页面当中执行如下语句
select * from tb_user where user_nm like '%王%'
没有记录,但是在sqlserver当中执行有记录,什么原因?
...全文
279 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingangwang 2004-10-11
  • 打赏
  • 举报
回复
help
cnham 2004-10-11
  • 打赏
  • 举报
回复
<%@ 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>
wangkunhong 2004-10-10
  • 打赏
  • 举报
回复
中文字符处理的问题~~~~
nwpulipeng 2004-10-10
  • 打赏
  • 举报
回复
帮顶混分
power17 2004-10-10
  • 打赏
  • 举报
回复
sql中可以有中文的,你可以在查询分析器里试一下,是绝对没有问题的.
你遇到无非就是编码的问题
zj2977 2004-10-10
  • 打赏
  • 举报
回复
SetCharacterEncoding()
pmaster 2004-10-10
  • 打赏
  • 举报
回复
帮顶
loverisyour 2004-10-10
  • 打赏
  • 举报
回复
标准的中文问题,tomcat5里面有个类SetCharacterEncodingFilter.java可以处理中文。
drugon 2004-10-10
  • 打赏
  • 举报
回复
这种问题主要是字符编码的问题,因为‘王’字在你的sqlserver 、tomcate 中的编码肯定是不一样的。在 tomcate估计是UTF-8编码,而在sqlserver中可能是GB2312的,两个地方的编码规则不一样,你又没有转换,查询的时候当然会出问题。
自己写个方法把字符转换成GB2312方式。
禽兽v5 2004-10-10
  • 打赏
  • 举报
回复
把数据库编码设定为GBK

web环境编码设定为GBK
coolstr 2004-10-10
  • 打赏
  • 举报
回复
应该是和你网页的编码有关系.你可以试一下将程序改成:

先将 %王% 编码指定为ISO编码.

再执行

select * from tb_user where user_nm like XXX

应该就没有问题了.
xingangwang 2004-10-10
  • 打赏
  • 举报
回复
但是我把中文改成了英文,就有记录显示
成都清香白莲 2004-10-10
  • 打赏
  • 举报
回复
和中文没有关系,应该是其它地方出的问题

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧