在jsp页面当中执行如下语句
select * from tb_user where user_nm like '%王%'
没有记录,但是在sqlserver当中执行有记录,什么原因?
27 个解决方案
#1
把%改为*试试
#2
STRING S="王";
select * from tb_user where user_nm like '%"+s+"%'
select * from tb_user where user_nm like '%"+s+"%'
#3
楼上的两位大侠,不行啊
#4
help
#5
贴出相关代码才能发现问题,sql语句没有问题
#6
select * from tb_user where user_nm like '%王%'
你把这句话放到查询分析器里看看,有没有记录
你把这句话放到查询分析器里看看,有没有记录
#7
没什么问题啊。
代码贴出来看看。
代码贴出来看看。
#8
newste(旭林) :放到查询分析器里,有记录!
1、我把数据库当中的“王”,改成“W”,select * from tb_user where user_nm like '%W%'在jsp页面也有记录;
2、页面代码就是执行一个查询-》显示,没问题,不过在页面开始加了<%@page contentType="text/html;gb2312"%>
1、我把数据库当中的“王”,改成“W”,select * from tb_user where user_nm like '%W%'在jsp页面也有记录;
2、页面代码就是执行一个查询-》显示,没问题,不过在页面开始加了<%@page contentType="text/html;gb2312"%>
#9
在sql语句当中条件如果包含中文,则不显示记录;没有中文,正常
#10
我怀疑是否是数据库中的编码和你在程序中的编码不同。你可以试下在同一个函数内连续执行insert和select试下
insert into tb_user values('王小二'); //根据你的表字段来添加
select * from tb_user where user_nm like '%王%';
如果能够选出记录的话,说明你在整个project的处理过程中没有统一编码格式。
如果还是选不出的话,可能是你的驱动有问题,换一个试试
insert into tb_user values('王小二'); //根据你的表字段来添加
select * from tb_user where user_nm like '%王%';
如果能够选出记录的话,说明你在整个project的处理过程中没有统一编码格式。
如果还是选不出的话,可能是你的驱动有问题,换一个试试
#11
我试过你的代码不管是查询分析器里还是jsp里都没有问题,要不把gb2312换成charset=GBK实施
#12
artisthl(清香白莲) :
我真是败了,还是不行!
你那边也是tomvate+sqlserver吗?
我真是败了,还是不行!
你那边也是tomvate+sqlserver吗?
#13
转换一下String s= new String(s.getBytes("ISO-8859-1"),"GBK");
#14
happyegg(想转型的程序员) :
我就是没有统一编码格式,数据保存到数据库中,中文变成了????,我就加了连个函数:
//将数据库中的中文字符显示到jsp页面
public String DataToJsp(String str)
{
String tpStr="";
try
{
tpStr=new String(str.getBytes("gb2312"),"ISO-8859-1");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return tpStr;
}
//将jsp页面中的中文信息保存到数据库中
public String JspToData(String str)
{
String tpStr="";
try
{
tpStr=new String(str.getBytes("ISO-8859-1"),"gb2312");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return tpStr;
}
我就是没有统一编码格式,数据保存到数据库中,中文变成了????,我就加了连个函数:
//将数据库中的中文字符显示到jsp页面
public String DataToJsp(String str)
{
String tpStr="";
try
{
tpStr=new String(str.getBytes("gb2312"),"ISO-8859-1");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return tpStr;
}
//将jsp页面中的中文信息保存到数据库中
public String JspToData(String str)
{
String tpStr="";
try
{
tpStr=new String(str.getBytes("ISO-8859-1"),"gb2312");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return tpStr;
}
#15
页面设置为gb2312,
每次将数据保存到数据库中前调用JspToData();在页面显示调用DataToJsp()
每次将数据保存到数据库中前调用JspToData();在页面显示调用DataToJsp()
#16
happyegg(想转型的程序员) :
如何做到编码统一,并且保证不论保存到数据库还是显示在页面当中的中文信息,都没有乱码情况?
如何做到编码统一,并且保证不论保存到数据库还是显示在页面当中的中文信息,都没有乱码情况?
#17
数据库能不能连上的?
#18
有可能是编码的问题,你用的什么编码啊,用 ISO或者 GB2312
#19
我用的也是tomvat+sqlserver
#20
一般来说,只需在每个页面定义统一的编码就行了
<%@ page language="java" contentType="text/html;charset=gb2312" %>
如果还是有问题,可以考虑在显示的时候进行编码转换:
new String(viewBean.getYourValue().getBytes(Util.getBrowserEncoding()));
Util.getBrowserEncoding()拿出"gb2312"或者"UTF-8"等编码字符
<%@ page language="java" contentType="text/html;charset=gb2312" %>
如果还是有问题,可以考虑在显示的时候进行编码转换:
new String(viewBean.getYourValue().getBytes(Util.getBrowserEncoding()));
Util.getBrowserEncoding()拿出"gb2312"或者"UTF-8"等编码字符
#21
从数据库到jsp中文不用转换应该没有问题,我就是这样的,而从jsp到数据库要转换
#22
SQL SERVER的JDBC对中文的支持很烂,微软本来就不爽JAVA,所以提供的JDBC写得乱七八糟。
#23
help
#24
sql语句应该对中文进行编码,否则估计不幸的
#25
gz
#26
squares(struts努力学习中 ……) :sql语句我进行了编码转换,也不行啊
#27
很简单,jsp上的编码和数据库数据的编码不同:
你以为你在jsp页面上执行的是select * from tb_user where user_nm like '%王%';
但实际应该执行的是select * from tb_user where user_nm like '%???%';
???是中文编码转码时出现的乱码。
你以为你在jsp页面上执行的是select * from tb_user where user_nm like '%王%';
但实际应该执行的是select * from tb_user where user_nm like '%???%';
???是中文编码转码时出现的乱码。
#1
把%改为*试试
#2
STRING S="王";
select * from tb_user where user_nm like '%"+s+"%'
select * from tb_user where user_nm like '%"+s+"%'
#3
楼上的两位大侠,不行啊
#4
help
#5
贴出相关代码才能发现问题,sql语句没有问题
#6
select * from tb_user where user_nm like '%王%'
你把这句话放到查询分析器里看看,有没有记录
你把这句话放到查询分析器里看看,有没有记录
#7
没什么问题啊。
代码贴出来看看。
代码贴出来看看。
#8
newste(旭林) :放到查询分析器里,有记录!
1、我把数据库当中的“王”,改成“W”,select * from tb_user where user_nm like '%W%'在jsp页面也有记录;
2、页面代码就是执行一个查询-》显示,没问题,不过在页面开始加了<%@page contentType="text/html;gb2312"%>
1、我把数据库当中的“王”,改成“W”,select * from tb_user where user_nm like '%W%'在jsp页面也有记录;
2、页面代码就是执行一个查询-》显示,没问题,不过在页面开始加了<%@page contentType="text/html;gb2312"%>
#9
在sql语句当中条件如果包含中文,则不显示记录;没有中文,正常
#10
我怀疑是否是数据库中的编码和你在程序中的编码不同。你可以试下在同一个函数内连续执行insert和select试下
insert into tb_user values('王小二'); //根据你的表字段来添加
select * from tb_user where user_nm like '%王%';
如果能够选出记录的话,说明你在整个project的处理过程中没有统一编码格式。
如果还是选不出的话,可能是你的驱动有问题,换一个试试
insert into tb_user values('王小二'); //根据你的表字段来添加
select * from tb_user where user_nm like '%王%';
如果能够选出记录的话,说明你在整个project的处理过程中没有统一编码格式。
如果还是选不出的话,可能是你的驱动有问题,换一个试试
#11
我试过你的代码不管是查询分析器里还是jsp里都没有问题,要不把gb2312换成charset=GBK实施
#12
artisthl(清香白莲) :
我真是败了,还是不行!
你那边也是tomvate+sqlserver吗?
我真是败了,还是不行!
你那边也是tomvate+sqlserver吗?
#13
转换一下String s= new String(s.getBytes("ISO-8859-1"),"GBK");
#14
happyegg(想转型的程序员) :
我就是没有统一编码格式,数据保存到数据库中,中文变成了????,我就加了连个函数:
//将数据库中的中文字符显示到jsp页面
public String DataToJsp(String str)
{
String tpStr="";
try
{
tpStr=new String(str.getBytes("gb2312"),"ISO-8859-1");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return tpStr;
}
//将jsp页面中的中文信息保存到数据库中
public String JspToData(String str)
{
String tpStr="";
try
{
tpStr=new String(str.getBytes("ISO-8859-1"),"gb2312");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return tpStr;
}
我就是没有统一编码格式,数据保存到数据库中,中文变成了????,我就加了连个函数:
//将数据库中的中文字符显示到jsp页面
public String DataToJsp(String str)
{
String tpStr="";
try
{
tpStr=new String(str.getBytes("gb2312"),"ISO-8859-1");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return tpStr;
}
//将jsp页面中的中文信息保存到数据库中
public String JspToData(String str)
{
String tpStr="";
try
{
tpStr=new String(str.getBytes("ISO-8859-1"),"gb2312");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return tpStr;
}
#15
页面设置为gb2312,
每次将数据保存到数据库中前调用JspToData();在页面显示调用DataToJsp()
每次将数据保存到数据库中前调用JspToData();在页面显示调用DataToJsp()
#16
happyegg(想转型的程序员) :
如何做到编码统一,并且保证不论保存到数据库还是显示在页面当中的中文信息,都没有乱码情况?
如何做到编码统一,并且保证不论保存到数据库还是显示在页面当中的中文信息,都没有乱码情况?
#17
数据库能不能连上的?
#18
有可能是编码的问题,你用的什么编码啊,用 ISO或者 GB2312
#19
我用的也是tomvat+sqlserver
#20
一般来说,只需在每个页面定义统一的编码就行了
<%@ page language="java" contentType="text/html;charset=gb2312" %>
如果还是有问题,可以考虑在显示的时候进行编码转换:
new String(viewBean.getYourValue().getBytes(Util.getBrowserEncoding()));
Util.getBrowserEncoding()拿出"gb2312"或者"UTF-8"等编码字符
<%@ page language="java" contentType="text/html;charset=gb2312" %>
如果还是有问题,可以考虑在显示的时候进行编码转换:
new String(viewBean.getYourValue().getBytes(Util.getBrowserEncoding()));
Util.getBrowserEncoding()拿出"gb2312"或者"UTF-8"等编码字符
#21
从数据库到jsp中文不用转换应该没有问题,我就是这样的,而从jsp到数据库要转换
#22
SQL SERVER的JDBC对中文的支持很烂,微软本来就不爽JAVA,所以提供的JDBC写得乱七八糟。
#23
help
#24
sql语句应该对中文进行编码,否则估计不幸的
#25
gz
#26
squares(struts努力学习中 ……) :sql语句我进行了编码转换,也不行啊
#27
很简单,jsp上的编码和数据库数据的编码不同:
你以为你在jsp页面上执行的是select * from tb_user where user_nm like '%王%';
但实际应该执行的是select * from tb_user where user_nm like '%???%';
???是中文编码转码时出现的乱码。
你以为你在jsp页面上执行的是select * from tb_user where user_nm like '%王%';
但实际应该执行的是select * from tb_user where user_nm like '%???%';
???是中文编码转码时出现的乱码。