Oracle全球支持(即Globalization Support)答應(yīng)我們使用本地語言和格式來存儲和檢索數(shù)據(jù)。通過全球支持,Oracle可以支持多種語言及字符集,得以展示數(shù)據(jù)庫的強(qiáng)大魅力。 由于不同語言及字符集的共同存儲存在設(shè)置上具有一定的復(fù)雜性,字符集一度成為普遍困擾大家的一個(gè)主要問題。 本文試圖就一些常見問題進(jìn)行探討,希望可以把一些實(shí)際經(jīng)驗(yàn)共享給大家! 1. 字符集的基本知識 假如從頭說起,字符集最早的編碼方案來自于與ASCII. 這也是我們最常見的編碼方式。該方案起源于1960年代初期,最初是美國國會(huì)圖書館制定用來作為美國圖書館界書目交換的共同標(biāo)準(zhǔn),最后完善成為美國的國家標(biāo)準(zhǔn)ASCII(American Standard Codefor Information Interchange),之后進(jìn)一步演變成世界性的計(jì)算機(jī)字符編碼標(biāo)準(zhǔn)ISO646(其全名為7-bit coded character set for information interchange)。成為計(jì)算機(jī)編碼方案的基礎(chǔ)。 Oracle數(shù)據(jù)庫最早支持的編碼方案也就是US7ASCII. 但是我們知道,英文字符一般是以一個(gè)字節(jié)來存儲的,7位的編碼方案最多只能代表128個(gè)字符;經(jīng)過擴(kuò)展的8位的編碼方案也只能代表256個(gè)字符,這遠(yuǎn)遠(yuǎn)不能滿足計(jì)算機(jī)發(fā)展的需要,對于亞洲國家復(fù)雜的字符存儲需要更多的碼位,于是各種編碼方案隨之而生。 為了容納全世界各種語言的所有字符和符號,解決不同編碼之間的兼容和轉(zhuǎn)換問題,1991年元月,10多家公司共同出資,組建Unicode協(xié)會(huì),隨后Unicode編碼產(chǎn)生了。 Unicode協(xié)會(huì)的口號是: 給每個(gè)字符提供了一個(gè)唯一的數(shù)字,不論是什么平臺,不論是什么程序,不論什么語言。 最初Unicode編碼使用2-Byte(16bit)來進(jìn)行編碼,但是最多只能容納65536個(gè)字符,仍然不夠使用,后來進(jìn)行了擴(kuò)充,也就是Unicode3.1標(biāo)準(zhǔn),增加了額外的補(bǔ)充字符定義,現(xiàn)在Unicode4.0標(biāo)準(zhǔn)已經(jīng)發(fā)布,具體可以參考Unicode官方站點(diǎn): www.unicode.org