SQL server2000插入中文时出现乱码如何解决? 在线等...

dreamlins 2006-03-17 11:55:38
jsp中调用bean:以下是bean里面的方法

public void executeUpdate(String sql)throws Exception{
sql=new String(sql.getBytes("GBK"),"ISO8859_1");
try{
conn=DriverManager.getConnection(sConnStr,username,password);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.close();
stmt.close();
}
catch(SQLException ex){
System.out.println("sql.executeUpdate:"+ex.getMessage());
}
}
这样做也不行!!!
...全文
242 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
guo__peng 2006-03-17
String str=new String(sql.getBytes("iso-8859-1"),"GB2312");
这样应该就可以了,这是编码原因造成的。

关于过滤器,tomcat下有一个例子。
回复
dreamlins 2006-03-17
过滤器?能简单介绍一下吗?
回复
ibiswang 2006-03-17
另外,如果你的sql是由上个页面中传过来的,注意也调用request.setCharactEncoding来设定为GBK或GB2312,注意,你上个页面中的charactencoding应当中对应的gbk或gb2312..
回复
ibiswang 2006-03-17
不用转码,在你的jsp中通过response.setCharactEncoding的方法将输出改为GBK或GB2312就行了,另外,注意应当在jsp执行代码的第一行就这么设定。
回复
doway 2006-03-17
new String(sql.getBytes("GBK"),"ISO8859_1");

大多数情况下这样做刚刚好搞反了,通常应该是:

new String(sql.getBytes("ISO8859-1"),"GBK");

另外,这样做编码转换早就过时了,应该使用过滤器。
回复
crazycl 2006-03-17
往数据库中插入纪录时,先对中文纪录进行编码转换,然后再插入就不会出现问题了
回复
aiyahujiejun 2006-03-17
在构造SQL之前 针对那些参数转码 不要对整条SQL转
试试吧
回复
xinxideyilian 2006-03-17
<%!
public String GBToUnicode(String strIn)
{
String strOut = null;
if(strIn == null || (strIn.trim()).equals(""))return strIn;
try{
byte[] b = strIn.getBytes("ISO8859_1");
strOut = new String(b,"GBK");
}
catch(Exception e)
{}
return strOut;
}
%>
回复
rickhunterchen 2006-03-17
过滤器的例子:
http://www.blogjava.net/rickhunter/articles/33571.html
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-03-17 11:55
社区公告
暂无公告