自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle字符集由那些部分組成

數(shù)據(jù)庫(kù) Oracle
以下的文章主要是對(duì)Oracle字符集的實(shí)際應(yīng)用的解析,如果你對(duì)這一技術(shù),心存好奇的話,以下的文章將會(huì)揭開(kāi)它的神秘面紗。

我們都知道Oracle字符集有N多種,最初我們應(yīng)用比較廣泛的字符集是ASCII,但是因?yàn)锳SCII所支持的相關(guān)字符是很有限的,因此又相繼出現(xiàn)了很多的編碼方案,這些編碼方案大部分都是包括了ASCII的。EBCDIC編碼是另一個(gè)比較基本的編碼,它的部分字符采用了和ASCII不同的編碼值,因此兩者是不兼容的基本編碼方案。

采用EBCDIC編碼的比較少,目前主要是IBM 的系統(tǒng)采用,如AS400及S390系統(tǒng),大部分的系統(tǒng)都是基于ASCII編碼的。

 

由于亞洲國(guó)家的Oracle字符集相對(duì)復(fù)雜一些,因此一般都使用了兩個(gè)及以上的字節(jié)進(jìn)行編碼的方案。對(duì)于簡(jiǎn)體中文,GB2312碼是國(guó)家1981年實(shí)施的編碼標(biāo)準(zhǔn),通行于大陸。新加坡等地也使用此編碼。GBK編碼是GB2312碼的擴(kuò)展,是1995年發(fā)布的指導(dǎo)性規(guī)范,它在字匯一級(jí)支持 ISO/IEC 10646-1 和GB 13000-1 的全部中日韓 (CJK) 漢字(20902字)。

目前***的漢字字符集是2000年的GB18030,它是取代GBK1.0的正式國(guó)家標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)收錄了27484個(gè)漢字,同時(shí)還收錄了藏文、蒙文、維吾爾文等主要的少數(shù)民族文字。目前簡(jiǎn)體WINDOWS的缺省內(nèi)碼還是GBK。

 

由于編碼方案太多且彼此之間不兼容,存在互相之間存在沖突的情況,即對(duì)于同一個(gè)編碼數(shù)值,在兩種不同的編碼方案中代表的是兩個(gè)不同的字符。這樣對(duì)于一些WEB應(yīng)用來(lái)說(shuō),由于多種語(yǔ)言文字的同時(shí)使用及存儲(chǔ),需要采用一種統(tǒng)一的字符集。

為此,國(guó)際標(biāo)準(zhǔn)化組織(ISO)制定了ISO 10646碼表,而Unicode協(xié)會(huì)制定了Unicode規(guī)范,這兩個(gè)體系剛開(kāi)始時(shí)是獨(dú)立建立的,在1991年,雙方都認(rèn)識(shí)到世界不需要兩個(gè)不兼容的Oracle字符集。于是它們開(kāi)始合并雙方的工作成果,并為創(chuàng)立一個(gè)單一編碼表而協(xié)同工作。

從Unicode2.0開(kāi)始,Unicode項(xiàng)目采用了與ISO 10646-1相同的字庫(kù)和字碼。目前兩個(gè)項(xiàng)目仍都存在,并獨(dú)立地公布各自的標(biāo)準(zhǔn)。Unicode協(xié)會(huì)現(xiàn)在的***版本是2006年的Unicode 5.0。

 

Oracle數(shù)據(jù)庫(kù)的字符集

Oracle的字符集名字一般由以下部分組成:語(yǔ)言或區(qū)域、表示一個(gè)字符的比特位數(shù)、標(biāo)準(zhǔn)字符集名稱(chēng)(可選項(xiàng),S或C,表示服務(wù)器或客戶(hù)端)。Oracle字符集UTF8與UTFE不符合此規(guī)定,其它基本都是這種格式。

  1. set nls_lang=AMERICAN_AMERICA.UTF8  
  2. set nls_lang=SIMPLIFIED CHINESE_AMERICA.UTF8  

 

 

對(duì)于US7ASCII,表示區(qū)域是US,用7個(gè)比特位表示一個(gè)字符,標(biāo)準(zhǔn)的字符集名稱(chēng)為ASCII。

 

對(duì)于中文字符集ZHS16GBK,表示簡(jiǎn)體中文(ZHT為繁體中文),一個(gè)字符需要16位比特,標(biāo)準(zhǔn)的字符集名稱(chēng)為GBK。而ZHS16CGB231280表示簡(jiǎn)體中文,一個(gè)字符需要16位比特,標(biāo)準(zhǔn)的字符集名稱(chēng)為GB231280,屬于我們前面提過(guò)的1981年發(fā)布的GB2312-80標(biāo)準(zhǔn)。

雖然我們說(shuō),GBK編碼標(biāo)準(zhǔn)是GB2312編碼標(biāo)準(zhǔn)的擴(kuò)展,但是數(shù)據(jù)庫(kù)字符集ZHS16GBK與ZHS16CGB231280之間卻不是嚴(yán)格的超集與子集的關(guān)系,主要是有些漢字的編碼在兩個(gè)Oracle字符集中的數(shù)值是不同的,因此它們進(jìn)行字符集轉(zhuǎn)換時(shí)會(huì)出現(xiàn)問(wèn)題。

 

在本文中,有時(shí)候使用的是標(biāo)準(zhǔn)字符集名稱(chēng),有時(shí)候又需要使用Oracle字符集的名稱(chēng),因此希望大家明白兩者之間的對(duì)應(yīng)關(guān)系。

 

Oracle數(shù)據(jù)庫(kù)有國(guó)家字符集(national character set)與數(shù)據(jù)庫(kù)字符集(database character set)之分。兩者都是在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)需要設(shè)置的。

國(guó)家字符集主要是用于NCHAR、NVARCHAR、NCLOB類(lèi)型的字段數(shù)據(jù),而數(shù)據(jù)庫(kù)字符集使用很廣泛,它用于:CHAR、VARCHAR、CLOB、LONG類(lèi)型的字段數(shù)據(jù);表名、列名、PL/SQL中的變量名;輸入及保存在數(shù)據(jù)庫(kù)的SQL和PL/SQL的源碼。

 

Oracle支持的Unicode字符集有以下幾種,下面的列表給出了字符集的名稱(chēng)、對(duì)應(yīng)的數(shù)據(jù)庫(kù)版本范圍、采用的Unicode的版本。

 

AL24UTFFSS:是Oracle***種支持Unicode的Oracle字符集,從7.2版本開(kāi)始使用,但是它支持的Unicode版本為1.1,因此從9i開(kāi)始就不支持此字符集了。

 

UTF8:是Oracle從Oracle8開(kāi)始使用的屬于UTF-8編碼的字符集,從Oracle8.0到Oracle8.16,Unicode版本為2.1,而Oracle817到10g,采用的Unicode標(biāo)準(zhǔn)為3.0

 

UTFE:用于EBCDIC碼平臺(tái)上的數(shù)據(jù)庫(kù)Unicode字符集。因此它屬于專(zhuān)用系統(tǒng)使用的字符集,其它屬性與UTF8基本相同。

 

AL32UTF8:是從Oracle9開(kāi)始使用的屬于UTF-8編碼的字符集,與UTF8相比,它采用的Unicode版本更新,在10g版本中使用的是Unicode 4.01標(biāo)準(zhǔn),而UTF8因?yàn)榧嫒菪缘目紤],在10g版本中用的是Unicode 3.0標(biāo)準(zhǔn)。

 

AL16UTF16:是Oracle***種采用UTF-16編碼方式的字符集,從Oracle9開(kāi)始使用,是作為缺省的國(guó)家字符集使用,它不能被用作數(shù)據(jù)庫(kù)的字符集。

這是因?yàn)閿?shù)據(jù)庫(kù)的字符集決定了SQL與PL/SQL源碼的編碼方式,對(duì)于UTF-16這種使用固定的兩個(gè)字節(jié)來(lái)表示英文字母的編碼方案來(lái)說(shuō),確實(shí)不適于用作數(shù)據(jù)庫(kù)的Oracle字符集,Oracle目前采用的數(shù)據(jù)庫(kù)字符集都是基于ASCII或EBCDID作為子集的編碼方案。

 

【編輯推薦】

  1. Oracle 字符串split的相關(guān)實(shí)際應(yīng)用代碼介紹
  2. Oracle創(chuàng)建Split 與Map 函數(shù)的代碼示例
  3. Oracle數(shù)據(jù)庫(kù)的安全,PL/SQL的SQL注入
  4. Oracle查詢(xún)分頁(yè)的存儲(chǔ)過(guò)程實(shí)際代碼示例
  5. Oracle merge into的實(shí)操示例
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2023-12-05 12:11:52

JVMCPU

2011-04-11 11:05:12

Oracle字符集

2010-04-30 10:16:22

Oracle字符集

2011-05-20 13:24:39

oracle字符集

2009-11-20 16:52:35

Oracle字符集

2011-04-11 10:59:33

Oracle字符集

2010-04-28 17:29:07

Oracle字符集

2010-05-06 18:01:07

Oracle Expr

2010-04-13 12:56:16

Oracle字符集

2010-04-13 13:11:34

Oracle漢字顯示

2009-07-29 13:42:04

Oracle中文顯示

2010-05-06 14:40:59

Oracle字符集

2010-04-21 09:49:10

Oracle數(shù)據(jù)庫(kù)字符

2010-04-13 13:33:37

Oracle字符集

2010-04-13 12:42:59

Oracle連接

2010-04-13 12:23:34

Oracle數(shù)據(jù)庫(kù)

2010-04-27 13:21:58

Oracle數(shù)據(jù)字符集

2010-04-12 15:40:48

Oracle SGA

2010-04-13 13:24:04

Oracle數(shù)據(jù)庫(kù)

2010-04-23 10:18:42

Oracle數(shù)據(jù)庫(kù)字符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)