在Linux上安装SYBASE ASE 12.5/15.0数据库,为了跟客户的业务数据库保持一致,缺省字符集是iso_1,现在开发了一个B/S应用,运行在tomcat6.0上,默认使用utf8字符集,以前ASE和tomcat在Windows平台上时一切正常,网页和数据都能正常显示,当服务器全部移植到Linux (RHEL 5.3)上后,数据部分显示汉字就不正常了。连接数据的jdbc串一直是:
jdbc:sybase:Tds:192.168.1.5:5000/mydb?charset=cp936,如果把连接串改成jdbc:sybase:Tds:192.168.1.5:5000/mydb?charset=utf8,那么无论是Windows平台还是Lunix平台则都是乱码。
后来经研究发现,ASE数据库在将iso_1字符集转换为utf8字符集时,都是单字节转换的,换句话说他不认识汉字,在iso_1中的一个汉字到了utf8这里就变成了两个汉字了。如果将数据库的缺省字符集改成utf8,汉字部分增加50%的存储空间暂且不考虑,关键是要把所有数据重新bcp下是相当麻烦,若牵涉到客户的业务数据库,则风险更大。经过研究将缺省字符集由iso_1升级为gb18030则比较平顺,这里用了“升级”两字,简单的说gb18030是gbk/gb2312的升级版,当然更是iso_1的升级了。现在ASE数据库在将gb18030字符集转换为utf8字符集时能认得汉字了,既可以转换成utf8,也可以转换成cp936了。
只是在使用客户端工具时麻烦了些:
使用isql.exe和sqladv.exe连接的请增加参数:-Jgb18030,
使用PowerBuilder连接的请在Database Profile Setup -> Regional Settings -> Character Set: gb18030,
使用jdbc的请使用jdbc:sybase:Tds:192.168.1.5:5000/mydb?charset=utf8 或者 jdbc:sybase:Tds:192.168.1.5:5000/mydb?charset=cp936
那么如何将缺省字符集由iso_1升级为gb18030呢?
1、查看当前连接字符集:
select @@client_csname
go
2、安装字符集排序:
cd /sybase/charsets/gb18030
charset -Usa -Sserver_name binary.srt gb18030
3、查看gb18030字符集的id(返回的id一般是173,第4步要引用)
select name,id from master..syscharsets where name = 'gb18030'
go
4、改变服务器缺省字符集配置(173是上面第3步得到的)
sp_configure 'default character set id', 173
go
5、重启数据库,自动检查系统表的采用新字符集后的排序顺序,完了后自动关闭,需要再启数据库即可。
参考:http://www.chinaunix.net/jh/21/630973.html
分享到:
相关推荐
本文将详细介绍如何将Sybase数据库的默认字符集从CP850转换为支持中文的CP936,以及在这一过程中可能遇到的问题及解决方案。 #### 二、基础知识概述 1. **字符集**:字符集是用于定义字符编码方案的一组规则,它...
- **查看服务器端和客户端字符集** 有助于诊断和解决问题,确保通信一致性。 5. **错误处理** - **字符集转换失败** 常见于不兼容的字符集之间,解决方法包括检查配置、使用Unicode转换或者选择兼容的字符集。 6...
- 字符集转换失败通常由于不兼容的字符集设置导致,解决方法包括检查和调整服务器、客户端的字符集配置,或在传输数据时进行正确的转换。 掌握这些概念和技术对于在Sybase ASE环境下进行软件开发至关重要,特别是...
Sybase ASE支持在同一语言组内的本地字符集转换,以及通过Unicode(如UTF-8)进行跨语言组的转换。 - 本地字符集转换发生在客户端和服务器都属于同一语言组的情况下,而Unicode系统中的转换则允许服务器使用UTF-8...
更改 Sybase ASE 数据库的字符集是一项复杂但必要的任务,尤其是在处理多语言环境或解决兼容性问题时。通过遵循上述步骤,并注意相关事项,可以确保这一过程顺利进行,并最终实现数据库的有效管理。
通过上述步骤,您可以在 SUSE Linux 10 上成功安装并配置 Sybase ASE 12.5.4 数据库。这些步骤涵盖了从操作系统层面的准备到数据库配置和初始化的全过程。确保遵循每个步骤中的指导,特别是关于系统资源限制的设置...
在直接转换无法适用的情况下,可以通过映射的方式来解决缺少字符集的问题。映射过程涉及到字符集之间的转换,通常会利用Unicode作为中间过渡。 - **特点**: - 转换过程中可能需要创建临时文件,因此相对于直接...
Sybase数据库中文字符集配置详解 Sybase数据库中文字符集配置是指在Sybase数据库中正确配置中文字符集的过程,以便正确...正确配置Sybase数据库的中文字符集可以避免中文字符乱码的问题,提高数据库的可靠性和稳定性。
本文档旨在指导用户如何在 RedHat AS 5 上安装 Sybase ASE for Linux 12.5。 installation process covers the creation of a Sybase directory, setting up the user and group, unpacking and installing the ...
这篇文章主要介绍了ASE 12.5 for Linux + TurboLinux 7 Server的特点和优势,旨在解决中端用户群的应用需求。该解决方案提供了完整的数据库产品和操作系统平台,解决了“Unix + 企业级数据库”巨大开销的问题。 ASE...
在上述几种Linux平台上的数据库产品中,Sybase ASE的性能很好,紧凑的程序分发包里包含了全部文档、数据库备份和监视等工具,同时它对系统的要求不高(系统配置为32MB内存,包含文档的全部安装需要200MB硬盘,否则...
Sybase ASE数据库最新版15.7, 64位linux版,可装于SuSE11, RedhatELS5.5, Ubuntu10.0.4 共4个包,这是第一个包。需要用7zip解压。
【描述】:文档主要讲述了Sybase ASE数据库管理系统如何在Linux操作系统上发挥其强大的性能,提供稳定且经济的解决方案,特别适合在极端环境和业务条件下运行。 【标签】:Linux操作系统,系统开发,参考文献,专业...
这通常涉及到配置服务器接口文件、主设备配置、系统过程数据库配置、错误日志位置设置、默认备份服务器配置、语言配置、字符集配置、排序顺序配置以及审计激活等步骤。 - 使用`sybinit`命令初始化Sybase ASE: ```...
- **C库的使用**:Linux上常见的加密库如OpenSSL或Libgcrypt提供了AES加密的接口,开发者需要熟悉这些库的API,如`EVP_EncryptInit_ex()`、`EVP_EncryptUpdate()`、`EVP_EncryptFinal_ex()`等函数。 - **内存管理**...
sap ase数据库官方安装文档,分windows以及linux_,版本分15.7以及16.0。
本文将详细阐述Sybase的安装、字符集设置、连接池配置以及卸载的相关知识。 首先,让我们从Sybase的安装开始。安装过程通常包括以下几个步骤: 1. 下载安装包:根据操作系统(如Windows或Linux)选择相应的安装文件...
为了帮助开发者和管理员更好地使用Sybase ASE,并将其无缝结合到Linux操作系统中,本文将详细介绍Sybase ASE在Linux平台上的安装、配置、创建和管理数据库的过程。 1. 安装Sybase ASE 在Linux操作系统上安装Sybase...
Sybase ASE15.0.2 Linux 32bit x86版(10之5) Sybase ASE15.0.2 Linux 32bit x86版(10之5) Sybase ASE15.0.2 Linux 32bit x86版(10之5) Sybase ASE15.0.2 Linux 32bit x86版(10之5) 使用7-zip解压