萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> 如何解決Sybase數據庫亂碼問題詳解

如何解決Sybase數據庫亂碼問題詳解

class="area">

搭建測試數據庫服務器時,遇到了亂碼問題,之前沒有遇到是因為開發數據庫服務器是早就安裝好並設置好字符集的,因此些問題在部署測試環境時才出現,當時已經將數據庫配置完畢,並且所有的初始化腳本都已經執行完畢,工程也已經成功部署在WebLogic上,打開IE,運行程序,卻發現所有從數據庫中讀取出來的都是亂碼,經過上網搜索的相關資料,需要設置字符集,但剛開始查找到的資料基本是都是支言片語,沒有一個系統的講解如何設置字符集,幾乎將他們所有的方法都試過了,結果不但沒有弄好,甚至連控制台和SQL平台都是亂碼了,實在弄不明白了,就去問高人了,他給我發了一個專門講解字符集的文檔,講的很全面,而且通過他的幫忙終於將解決了亂碼問題。

下面我總結一下設置字符集的過程:

1、安裝完Sybase後,如果要想設置字符集為CP936,就必須先安裝該字符集,因為Sybase默認的字符集表中並沒有該字符集,安裝步驟如下:(這裡 SYBASE的安裝路徑為c:\sybase)   1.c:\>;cd \sybase\charsets\cp936   2.c:\sybase\charsets\cp936>; charset -Usa -Psa_pass -Sserver_name binary.srt cp936通過上述命令就成功將CP936字符集安裝表Sybase的系統字符集表中,但必須重啟Sybase服務兩次才能看到結果,可以通過查看 master數據庫中的syscharsets表查看是否已經安裝成功,我們可以看到已經安裝成功了:1002,171,0,1,'cp936', 'CP936 (Simplified Chinese).',’…’

2、看到CP936的編號為171,我們需要在Sybase的屬性中設置系統字符集為該ID,如下圖所示:

如果設置完字符集成出現錯誤,是因為master數據庫的表空間默認只分配幾百K的空間,導入新的數據後已經沒有足夠的空間了,所以要對master數據庫設置大一些的表空間,點擊master數據庫右鍵屬性,選擇表空間的tab頁,對原有的表空間編輯重新分配大小,將master所有的表空間都分配了就可以解決該問題。

3、 設置好字符集後就可以執行初始化腳本了。這其中還有幾個小插曲,由於第二步的表空間不足的錯誤根本沒有一個文檔中有說明,所以我和郭立英根本誰也不知道,都以為Sybase被我們搞崩潰了呢,沒辦法只能重新安裝,但安裝後還是有該問題,後來請高人來幫我們看才知道是表空間的問題,還有就是雖然設置好字符集後,打開IE看還是亂碼,不知道為什麼,後來重新執行一遍腳本後就沒有了,是因為之前默認的字符集為Cp850,所以用該字符集下執行的腳本再到CP936的環境中讀取一定會亂碼,所以在 CP936的環境中再執行一遍腳本就沒有問題了。

copyright © 萬盛學電腦網 all rights reserved