Sybase配置中文语言支持及字符集

在windows平台上,Sybase ASE15.0.7安装完成后默认语言是:英语(us_english),默认字符集为:cp850。cp850是一个西欧字符集,虽然也能使用cp850字符集保存汉字,但是不推荐在生产环境中使用该字符集。

 如果生产系统中Sybase ASE数据库仅考虑支持简体中文的话,则可以使用cp936或者utf8这两种字符集。如果需要国际化支持,那么需选择utf8字符集。

在生产环境中,需要将默认字符集由cp850调整为utf8(或者调整成支持简体中文的cp936也可以,根据项目情况而定!),将默认语言调整为中文。

备注:如果想设定ASE的默认语言为中文,必须先将默认字符集设定为utf8,才能设置默认语言为中文。否则会报错。

查看当前数据库的默认字符集:

执行:

sp_configure "default character set id"

go

查看到Run Value为:2,执行:

select id,name from master..syscharsets where id=2

go

查看到当前字符集为:cp850

将字符集由cp850或者iso_1调整为utf8有2中方法:图形界面工具和命令行工具。

1、图形界面配置字符集

菜单:开始>所有程序>Sybase>Adaptive Server Enterprise>Server Config

Sybase配置中文语言支持及字符集

选择配置Adaptive Server-之后输入sa用户名和密码

Sybase配置中文语言支持及字符集

Sybase配置中文语言支持及字符集

在配置字符集为utf8过程中ASE服务会重启两次。有出现配置完成后,ASE主服务无法启动失败的情况,重启机器就行。

检验utf8字符集是否配置成功

在cmd下执行: isql –Usa –P –SRUSKYPC –Jcp936登录ASE数据库。

1> sp_configure "default character set id"

2> go

 Parameter Name                 Default              Memory Used

         Config Value         Run Value            Unit

         Type

 ------------------------------ -------------------- -----------

         -------------------- -------------------- --------------------

         ----------

 default character set id                 2                    0

                  190                  190         id

         static

(1 row affected)

(return status = 0)

1> select id,name from master..syscharsets where id = 190

2> go

 id  name

 --- ------------------------------

 190 utf8

(1 row affected)

1>

至此,utf8字符集修改成功!

2、用命令行工具调整字符集为utf8

检查当前ASE数据库中是否安装了utf8字符集?

select id,name from master..syscharsets

where name='utf8'

go

如果有返回结果,则证明ASE服务器已经安装了utf8字符集。utf8字符集的id一般为190。

如果未安装字符集utf8,则在cmd下执行:

cd /d %sybase%\charsets\utf8

charset -Usa -P -SRUSKYPCbinary.srt utf8    (sa的密码为空,服务名称为:RUSKYPC)

反馈信息如下:

C:\sybase\charsets\utf8>charset -Usa -P -SRUSKYPC binary.srt utf8

Loading file 'binary.srt'.

Found a [sortorder] section.

This is Class-1 sort order.

Finished loading the Character Set Definition.

Finished loading file 'binary.srt'.

1 sort order loaded successfully

再次检查当前ASE数据库中是否安装了utf8字符集?

select id,name from master..syscharsets

where name='utf8'

go

反馈信息如下:

1> select id,name from master..syscharsets

2> where name='utf8'

3> go

 id  name

 --- ------------------------------

 190 utf8

 

(1 row affected)

说明已经安装了utf8字符集。

配置默认字符集为:utf8

sp_configure “default character set id”,190

go

之后重启ASE数据库两次

检验utf8字符集是否配置成功

1> sp_configure "default character set id"

2> go

 Parameter Name                 Default              Memory Used

         Config Value         Run Value            Unit

         Type

 ------------------------------ -------------------- -----------

         -------------------- -------------------- --------------------

         ----------

 default character set id                 2                    0

                  190                  190         id

         static

(1 row affected)

(return status = 0)

1> select id,name from master..syscharsets where id = 190

2> go

 id  name

 --- ------------------------------

 190 utf8

(1 row affected)

1>

至此,utf8字符集修改成功!

============

修改数据库默认语言:

图形界面同上。

命令行界面操作如下:

在ASE服务器中安装中文语言:

cd /d %sybase%\%sybase_ase%\bin

langinst -Usa -P -SRUSKYPC chinese   (sa的密码为空,数据库服务名为:RUSKYPC)

反馈信息为:

C:\sybase\ASE-15_0\bin>langinst -Usa -P -SRUSKYPC chinese

用isql设定默认语言为中文:

在cmd下执行: isql  -Usa –P –SRUSKYPC –Jcp936 登录ASE数据库。

检查中文语言是否已经成功安装?

select langid,name from master..syslanguages

go

如果返回结果为1行,则说明中文语言已经成功安装了。

配置ASE数据库默认语言为中文:

sp_configure "default language id",1

go

验证ASE默认语言为中文

用isql登录ASE,

isql –Usa –Jcp936           (当前数据库的字符集为utf8,客户端连接时需要使用cp936,否则中文会出现乱码)

select @@language

如果返回结果为:Chinese,则表示默认语言已经修改为中文了。

修改登录账号的默认语言为中文

查看登录账号的默认语言:

sp_displaylogin sa

go

修改登录的默认语言为中文:

sp_modifylogin sa,deflanguage,chinese

go

再次检验登录账号的默认语言:

1> sp_displaylogin sa

2> go

你可能感兴趣的:(Sybase)