免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 15168 | 回复: 13
打印 上一主题 下一主题

sybase查询出来的中文都是乱码是怎么回事 [复制链接]

论坛徽章:
2
摩羯座
日期:2015-01-10 16:35:05摩羯座
日期:2015-01-25 22:10:41
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-03-24 18:26 |只看该作者 |倒序浏览
  情况是这样的,我有一个sybase 7.0 的文件  在winxp下使用 Sybase Central 可以正常打开,但使用select 查询时英文和数据显示正常,但汉字显示都是乱码,如下图所示:


使用excel通过ODBC连接这个数据库查询出来的也是乱码


但使用一款名为Repair For Sybase Sql Anywhere  的工具打开这个数据库文件时就会显示正常的汉字


仅有一个数据库文件,  没有专门的数据库服务器,

我想问怎样才能通过sybase central 或者是 excel 显示出正常的汉字  ,,,,谢谢

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2015-03-24 21:04 |只看该作者
select * from sysinfo

论坛徽章:
2
摩羯座
日期:2015-01-10 16:35:05摩羯座
日期:2015-01-25 22:10:41
3 [报告]
发表于 2015-03-25 14:17 |只看该作者
回复 2# andkylee
查询结果



   

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2015-03-25 19:42 |只看该作者
在连接属性中指定:  charset=cp936

论坛徽章:
2
摩羯座
日期:2015-01-10 16:35:05摩羯座
日期:2015-01-25 22:10:41
5 [报告]
发表于 2015-03-27 14:33 |只看该作者
回复 4# andkylee


您好,老师,按照您的说明设置后还是乱码,
Sybase Central 设置  

使用 select 查询时还是乱码



下面是ODBC设置


使用 EXCEL 的 query 查询出来的也是乱码  如下图所示,
   

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2015-03-27 16:24 |只看该作者
使用jdbc连接串。

论坛徽章:
2
摩羯座
日期:2015-01-10 16:35:05摩羯座
日期:2015-01-25 22:10:41
7 [报告]
发表于 2015-03-27 16:34 |只看该作者
回复 6# andkylee


还是不行啊,老师


   
依旧乱码

2.jpg (31.85 KB, 下载次数: 110)

2.jpg

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
8 [报告]
发表于 2015-03-30 15:00 |只看该作者
select convert(varbinary(30) , 字段名)  from 表名
贴一下该字段的编码值。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
9 [报告]
发表于 2015-04-03 10:23 |只看该作者
首先:
1. 确认ASE Server的default charset -- sp_configure "char"
2. 如果是utf-8或utf-16之类国标字符集,那么再确认所读取表内所存中文的编码是否确实是utf-8或utf-16, 方式为用binary方式读取其中几个中文,然后对比一下bin code是否正确
3. 如果是GB2312,GBK或GB28312之类的,那么检查客户端读取时的字符集设置,应与server端相同, ODBC直接在data source上设置character set, JDBC在连接字上加"Charset=xxx"
4. 如果是iso_1的话,比较麻烦,因为无论数据源是哪种字符集都能正确写入,然后按照asc读取出来,这点必须同时确认db内记录中文的表内的coding字符集名称,并对应在客户端上选择性设置同样的字符集方可(参考step3). 我见过某db用iso_1,结果内部不同table使用不同char set的, 然后app的不同读取request必须配置不同的连接字^

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
10 [报告]
发表于 2015-04-03 10:26 |只看该作者
另补充:
Sybase central是强制utf-8的连接,如果有中文,最好使用isql或dbartisan, PB之类可选择连接字符集的工具来查询
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP