解決Sybase中文問題 1. JDBC連接串要有字符集設置 jdbc:sybase:Tds:192.168.3.11:5000/Wfis_db?charset=cp936 2. 服務器配置成cp936 (1) 使用isql查看當前已經安裝的字符集 isql -Usa -Plongtop >use master >go >select id,name from syscharsets >go id name --- ---------------- 0 ascii_8 1 iso_1 2 cp850 (41 rows affected) 從列表中看出沒有安裝cp936字符集 (2) 查看當前使用的缺省字符集 >sp_configure "default char" >go Parameter Name Default Memory Used Config Value Run Value Unit Type ------------------------------ ----------- ----------- ------------ ----------- -------------------- ---------- default character set id 2 0 2 2 id static 缺省字符集的id是2,查看上面的列表,可以得知是cp850 (3) 因為上面的列表中沒有安裝cp936,所以就安裝cp936字符集 進入目錄C:/sybase/charsets/cp936 運行命令 charset -Usa -Plongtop binary.srt cp936 運行完成後,系統就安裝了cp936字符集 (4) 驗證是否確實安裝了cp936字符集 isql -Usa -Plongtop >use master >go >select id,name from syscharsets >go id name --- ------------------------------ 0 ascii_8 1 iso_1 2 cp850 50 bin_iso_1 50 bin_cp850 50 bin_cp936 129 cp932bin 137 gb2312bn 171 cp936 (43 rows affected) 從列表中可以發現已經安裝了cp936,id是171 (5) 把系統的當前缺省字符集設置為cp936 >sp_configure "default char",171 >go In changing the default sort order, you have also reconfigured SQL Server's default character set. Parameter Name Default Memory Used Config Value Run Value Unit Type ------------------------------ ----------- ----------- ------------ ----------- -------------------- ---------- default character set id 2 0 171 2 id static (1 row affected) Configuration option changed. Since the option is static, Adaptive Server must be rebooted in order for the change to take effect. Changing the value of 'default character set id' to '171' increases the amount of memory ASE uses by 6 K. (return status = 0) (6) 重啟Sybase服務,使更改生效 第一次重啟,系統會對已經存在的數據進行轉換,轉換完成後自動停止服務,只要再次啟動服務就可以了。 (7) 更改DB客戶端的字符集 DBArtisan中要更改客戶端的字符集為cp936才能連接cp936的服務器 通過菜單/Logfile/Options...打開對話框,選擇Connection標簽, 更改Client Character輸入框的值為cp936。 數據庫的charset修改為cp936時,使用isql按如下的方式 isql -Usa -Plongtop -Sdbserver -Jcp936