还是恼人的中文问题。(100分)

  • 主题发起人 主题发起人 goldbaby
  • 开始时间 开始时间
G

goldbaby

Unregistered / Unconfirmed
GUEST, unregistred user!
NT4,JRUN,APACHE
String query = new String("select gsid,khmc,txdz,wz from t_jbzl where khmc like '%山东济南%'");
rs=stmt.executeQuery(query);
错误提示是:
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]
Unclosed quotation mark before the character string '%山东济南'
测试现象是这样,如果传进一个或2个汉字参数,如,'%山%',会有正确结果返回,
参数传入时候,做编码转换处理。但是直接写这样一个语句,直接对数据库操作我就很困惑,
高人能不能送编码代码给我。(IBM的我已经看过了,还是困惑)
 
public static String toChinese(String strValue){
String strChvalue = "";
try{
if(strValue!=null &&
strValue.length>0){
strChvalue = new String(strValue.getBytes("ISO8859_1"),"GB2312");
}
else
{
strChvalue = strValue;
}
}
catch(Exception e){
System.out.println(e.toString());
}
return strChvalue;
}
 
不要这么麻烦的,在每个JSP中加入
<%@ page contentType="text/html;charset=gb2312" %>加上最前面
 
这应该是你的jdbc和sql server的字符集设置的问题。jdbc使用的是英文字符集,是单字节编码,而汉字是多字节编码,需要在java程序中进行如pullx兄所示方法进行转换方可正常显示,但如果sql server中字符集不是Simplified Chineses可能会有查询出来有问题的现象。
你可以先用sqlw运行一下你的sql语句,再做一个非常简单的运行sql语句的jsp程序互相验证一下。
 
if(strValue!=null &amp;&amp;
strValue.length()>0)[:D]
 
你为何用ODBC桥???
如果你的SQLServer的JDBC Driver没有中文包(中文支持),sql语句中有中文将会发生错误。
 
我刚用resin做完一个项目
resin没有这样的问题,
 
我也是用resin的,但是当向数据库中插入中文内容时就会出现乱码。
但是用TOMCAT时没有出现这种情况。
 
要加这个的charset=gb2312
如下
<META http-equiv=Content-Type content="text/html;
charset=gb2312">
 
why not GBK?
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
I
回复
0
查看
979
import
I
后退
顶部