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
选择配置Adaptive Server-之后输入sa用户名和密码
在配置字符集为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