免费注册 查看新帖 |

Chinaunix

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

SYBASE字符集的配置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-19 16:54 |只看该作者 |倒序浏览
SYBASE字符集的配置

1、在操作系统上运行locale
如AIX:
LANG=en_US
LC_COLLATE="en_US"
LC_CTYPE="en_US"
LC_MONETARY="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_MESSAGES="en_US"
LC_ALL=
LANG对应的设置为en_US


2、查看/sybase/locales/locales.dat
找到对应操作系统下的字符集配置,如AIX
[aix]
       locale = C, us_english, iso_1
       locale = En_US, us_english, iso_1
       locale = en_US, us_english, iso_1
       locale = default, us_english, iso_1
       locale = En_US.IBM-850, us_english, cp850
       locale = en_US.ISO8859-1, us_english, iso_1
       locale = En_JP, us_english, sjis
       locale = en_JP, us_english, eucjis
       locale = Fr_FR, french, cp850
       locale = fr_FR, french, iso_1
       locale = Fr_FR.IBM-850, french, cp850
       locale = fr_FR.ISO8859-1, french, iso_1
       locale = Fr_CA, french, cp850
       locale = fr_CA, french, iso_1
       locale = Fr_CA.IBM-850, french, cp850
       locale = fr_CA.ISO8859-1, french, iso_1

找到对应locale=en_US的行,如上面为:
locale = en_US, us_english, iso_1
因此SYBASE使用的字符集为iso_1。

3、可以在isql中查看目前使用的字符集
isql -Usa -P
>;sp_helpsort
>;go

查看客户端使用的字符集:
isql -Usa -P
>;select @@client_csname
>;go

如果客户端和服务器字符集不一致,便会产生“Error converting client characters into server's character set.”的错误

简体中文字符集为:cp932,但使用iso_1、utf8等都可以,关键是客户端和服务器字符集要保持一致。

4、更改字符集的方法:
vi /sybase/locales/locales.dat中对应的操作系统中对应的环境变量


1>;select name,id from syscharsets
2>;go
找到你要更改的字符集名称对应的id(假设为117)
1>;sp_configure "default character set id",1
2>;go

以上以AIX为例,AIX上的SYBASE缺省不用更改字符集,但HPUX需要更改的,更改方法参考上面。不更改的话在使用isql,bcp也可通过-J参数制定字符集,如isql -J cp932等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP