sybase中的字符集轉換

wenpingblog發表於2011-05-12
 
為保持客戶端與伺服器之間的資料完整性,資料必須在字符集之間進行轉換,目的是跨機器和字符集使用時,確保“a”還是“a”,此過程就是字符集轉換。
 
 
字符集轉換的方式:
本地字符集的轉換:
  Adaptive Server支援屬於同一語言組的本地字符集之間的轉換。如果伺服器把一種本地字符集作為它的預設值,則客戶端字符集必須屬於同一個語言組,此時可以在伺服器上瀏覽所有客戶端提交的資料。
 
伺服器端與客戶端使用的語言集與字符集都同屬於組,那麼他們之間實現的就是本地字符集轉換方式。
 
Unicode系統中的轉換方式:
  在Unicode系統中,由於伺服器的預設字符集為UTF-8,所以客戶端字符集可以是任何語言組中的一種本地字符集。來自每一個客戶端的資料經過伺服器和每個客戶端時,都會被正確轉換,而無論每一個客戶端選擇的時哪個語言組的字符集,原因是ASE伺服器端選擇了預設字符集UTF-8.
 
字符集轉換型別:
直接轉換:
  支援同一語言組內兩種本地字符集之間的轉換。例如,Adaptive Server支援CP437與CP850之間的轉換,因為他們同屬於第1語言組。
 
Unicode轉換:
   Unicode轉換可應用於所有本地字符集,在兩種本地字符集之間進行轉換時,Unicode轉換方式把Unicode作為中間字符集。
例如,在伺服器預設字符集CP437和客戶端字符集CP860之間進行轉換時,CP437先被轉換成Unicode,Unicode再轉換成CP860。
Unicode轉換方式既可以用於伺服器預設字符集UTF-8,還可用於本地字符集。除非使用伺服器預設字符集UTF-8,
否則您必須專門配置您的伺服器才能使用Unicode轉換方式(配置方法請參看配置篇之如何配置字符集的轉換型別)。
 
選擇字符集的轉換方式
  這將取決於系統的型別。在非Unicode系統中,伺服器和客戶端的字符集為本地字符集,因此可以使用Adaptive Server直接轉換,但是有些字符集沒有直接轉換,這種情況就必須使用Unicode轉換了。
  ――如果系統中使用的所有字符集都在表1-5的列1中,則使用直接轉換。前提是所有字符集同屬於一個語言組。
  ――如果系統中使用的所有字符集都在表1-5的列2中,或者有些在列1中,有些在列2中,那麼必須配置伺服器使用Unicode轉換方式。 前提是所有字符集同屬於一個語言組。
  
在Unicode系統中,如果伺服器預設字符集為Unicode UTF-8,那麼所有的轉換將在UTF-8與客戶端使用的本地字符集之間進行,因此,在Unicode系統中,只能使用Unicode轉換。
 
還是官方文件寫得細緻啊!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22363020/viewspace-695116/,如需轉載,請註明出處,否則將追究法律責任。

相關文章