CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

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

楼主dreamlins(颠覆)2006-03-17 11:55:38 在 Java / Web 开发 提问

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());      
                            }      
            }      
  这样做也不行!!! 问题点数:100、回复次数:9Top

1 楼aiyahujiejun(哦)回复于 2006-03-17 12:03:34 得分 0

在构造SQL之前   针对那些参数转码   不要对整条SQL转  
    试试吧Top

2 楼crazycl(陈利)回复于 2006-03-17 12:14:42 得分 0

往数据库中插入纪录时,先对中文纪录进行编码转换,然后再插入就不会出现问题了Top

3 楼doway(john)回复于 2006-03-17 12:15:31 得分 50

new   String(sql.getBytes("GBK"),"ISO8859_1");      
   
  大多数情况下这样做刚刚好搞反了,通常应该是:  
   
  new   String(sql.getBytes("ISO8859-1"),"GBK");  
   
  另外,这样做编码转换早就过时了,应该使用过滤器。  
  Top

4 楼ibiswang(神鸟)回复于 2006-03-17 12:29:56 得分 10

不用转码,在你的jsp中通过response.setCharactEncoding的方法将输出改为GBK或GB2312就行了,另外,注意应当在jsp执行代码的第一行就这么设定。Top

5 楼ibiswang(神鸟)回复于 2006-03-17 12:31:45 得分 0

另外,如果你的sql是由上个页面中传过来的,注意也调用request.setCharactEncoding来设定为GBK或GB2312,注意,你上个页面中的charactencoding应当中对应的gbk或gb2312..Top

6 楼dreamlins(颠覆)回复于 2006-03-17 12:37:04 得分 0

过滤器?能简单介绍一下吗?Top

7 楼guo__peng(guo__peng)回复于 2006-03-17 12:55:29 得分 40

String   str=new   String(sql.getBytes("iso-8859-1"),"GB2312");  
  这样应该就可以了,这是编码原因造成的。  
   
  关于过滤器,tomcat下有一个例子。  
  Top

8 楼rickhunterchen(千山鸟飞绝)回复于 2006-03-17 13:25:18 得分 0

过滤器的例子:  
  http://www.blogjava.net/rickhunter/articles/33571.htmlTop

9 楼xinxideyilian(心细的依恋)回复于 2006-03-17 13:35:33 得分 0

<%!  
  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;    
  }  
  %>Top

相关问题

  • 往SQL Server插入记录,出现乱码的原因
  • 英文版SQL Server插入中文字符乱码的问题!
  • 晕,用ado从access取出文字数据然后插入sql server,插入后出现全部是??的乱码.
  • 中文插入SQL数据库中变成了乱码?
  • 乱码:“DBF数据表导入sql server 中文出现乱码”
  • sql_server乱码(修改字符集)
  • JDBC连SQL Server的乱码问题!急!!!
  • 急!!!sql server数据库乱码!!!(100)
  • Oracle 连接 SQL Server 的乱码问题
  • sqlplus 执行sql脚本插入数据时中文乱码,怎么解决?

关键词

  • 编码
  • sql
  • 插入
  • 过滤器
  • gbk
  • executeupdate
  • getbytes
  • gb2312
  • iso8859
  • stmt

得分解答快速导航

  • 帖主:dreamlins
  • doway
  • ibiswang
  • guo__peng

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo