+ -
当前位置:首页 → 问答吧 → sybase汉字乱码

sybase汉字乱码

时间:2011-12-12

来源:互联网

请高手帮忙:谢谢!
sybase数据库编码是cp850,使用jdbc连数据库,读出的数据汉字是乱码!页面使用cp936读到程序中显示正常,存入数据库就是乱码(gbk也是)怎么解决啊!
使用转换也不行:
  public String gbk(String s){ 
  if(s == null || (s.trim()).equals(" ")) 
  return s; 
   
  String r = null; 
  try{ 
  r = new String(s.getBytes("CP850"),"CP936"); 
  }catch(Exception e){
  e.printStackTrace();
  }  
  return r; 
}

调用:String feeCode = zifu.gbk(rs.getString(1));

作者: houxiaojia   发布时间: 2011-12-12

在安装完Sybase后,很多人在使用isql或程序插入中文数据后发现,查询出的数据是乱码(中文字符全为‘?’),这是因为客户端的字符集和服务端的字符集不一致造成的,Sybase默认安装后默认字符集为:iso_1。通常使用中文字符集在Sybase内是cp936。那么如何设置Sybase的字符集呢?修改方法如下: 

以Windows操作系统Sybase15为例: 

首先说明察看服务端字符集和客户端字符集的方法: 

查看服务器端字符集: 

在isql环境中执行: 

1>; sp_helpsort 

2>; go 

查看客户端字符集: 

在isql环境中执行: 

1>; select @@client_csname 

2>; go 

修改服务端字符集方法: 

假设sybase安装目录为$sybase$ 

◆1.转到$sybase$\ASE-15_0\bin目录 

执行命令:charset -Usa -P binary.srt cp936 

◆2.打开isql,执行下面的SQL查询出cp936对应的id 

select id , name from syscharsets where name = 'cp936' 

go 

假设查询结果为171 

执行下面语句设定默认字符集 

sp_configure 'default char',171 --可能有误,以上面的查询结果为准 

go 

关闭ASE 

shutdown 

go 

◆3.重新启动sybase服务两次(第一次启动会失败),启动服务。 

作者: s208040139   发布时间: 2011-12-12

试下楼上的 感觉很对啊

作者: cs123456789dn   发布时间: 2011-12-12