>進入 1. 字符集與編碼常識 字符集: 人們根據需要把某些字符收集到一處,并賦以名稱,于是便有了某某字符集。 例如: ASCII: ASCII字符集:包含大小寫英文、阿拉伯數字、標點,以及一些不可見的控制符共1" />
最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Oracle全球化支持:字符集系統介紹及服務器端、客戶端設置

來源:懂視網 責編:小采 時間:2020-11-09 08:11:09
文檔

Oracle全球化支持:字符集系統介紹及服務器端、客戶端設置

Oracle全球化支持:字符集系統介紹及服務器端、客戶端設置:歡迎進入Oracle社區(qū)論壇,與200萬技術人員互動交流 >>進入 1. 字符集與編碼常識 字符集: 人們根據需要把某些字符收集到一處,并賦以名稱,于是便有了某某字符集。 例如: ASCII: ASCII字符集:包含大小寫英文、阿拉伯數字、標點,以及一些不可見的控制符共1
推薦度:
導讀Oracle全球化支持:字符集系統介紹及服務器端、客戶端設置:歡迎進入Oracle社區(qū)論壇,與200萬技術人員互動交流 >>進入 1. 字符集與編碼常識 字符集: 人們根據需要把某些字符收集到一處,并賦以名稱,于是便有了某某字符集。 例如: ASCII: ASCII字符集:包含大小寫英文、阿拉伯數字、標點,以及一些不可見的控制符共1

歡迎進入Oracle社區(qū)論壇,與200萬技術人員互動交流 >>進入 1. 字符集與編碼常識 字符集: 人們根據需要把某些字符收集到一處,并賦以名稱,于是便有了某某字符集。 例如: ASCII: ASCII字符集:包含大小寫英文、阿拉伯數字、標點,以及一些不可見的控制符共1

歡迎進入Oracle社區(qū)論壇,與200萬技術人員互動交流 >>進入

  1. 字符集與編碼常識

  字符集:

  人們根據需要把某些字符收集到一處,并賦以名稱,于是便有了某某字符集。

  例如:

  ASCII:

  ASCII字符集:包含大小寫英文、阿拉伯數字、標點,以及一些不可見的控制符共128個。

  ASCII編碼:使用7位表示一個字符。編碼范圍是[0-127](即Hex[00-7F]),其中[0-31](Hex[00-1F])部分以及127(Hex7F)是控制符,其余的都是些可見字符。

  GB2312:

  GB2312字符集:ASCII字符集+7000左右漢字字符。

  GB2312編碼:兼容ASCII編碼。對字節(jié)進行判斷,如值<=127,則意義等同于ASCII編碼;如值>127,則它需要跟其后的另一個字節(jié)合并表示一個字符。其理論漢字編碼空間為128X256,超過3萬個字符。

  GBK:

  GBK字符集:GB2312字符集+20000左右漢字字符。

  GBK編碼:兼容GB2312編碼。利用了GB2312編碼閑置的編碼空間。

  GB18030:

  GB18030字符集:GBK字符集+若干漢字+若干少數民族字符,為目前國內最新的字符集。

  GB18030編碼:兼容GBK編碼。繼續(xù)利用GBK編碼閑置的編碼空間,對于超出編碼空間的則采用4個字節(jié)表示。

  BIG5:

  BIG5字符集:ASCII字符集+13000左右漢字(繁體)。

  BIG編碼:兼容ASCII編碼。其編碼模式類似于GB2312.

  UNICODE:(UNICODE一詞在日常使用中顯得寬泛、混亂,在不同的語境中可以是以下意思之一。)

  UNICODE標準:由一些組織提出的一套標準,對人類文字的顯示、編碼等進行了一系列的規(guī)定。

  UNICODE字符集:目前最新版的UNICODE字符集中已經包含各種語言的超過10萬的字符。

  UNICODE編碼:(狹義的UNICODE編碼可能指UCS-2,也可能指UTF-16;廣義的UNICODE編碼可以指包括以下四種在內的若干種對UNICODE標準的編碼實現。)

  1. UTF-32編碼:固定使用4個字節(jié)來表示一個字符,存在空間利用效率的問題。

  2. UTF-16編碼:對相對常用的60000余個字符使用兩個字節(jié)進行編碼,其余的(即'補充字符supplementary characters')使用4字節(jié)。

  3. UCS-2編碼:是對UNICODE早期版本的實現,它與UTF-16的唯一區(qū)別是它不包括'補充字符',所以它對字符的編碼只使用兩個字節(jié)。目前此編碼模式已過時。

  4. UTF-8編碼:兼容ASCII編碼;拉丁文、希臘文等使用兩個字節(jié);包括漢字在內的其它常用字符使用三個字節(jié);剩下的極少使用的字符使用四個字節(jié)。

  ISO8859-1:(使用Oracle的同志們可能見過這個WE8ISO89859P1,沒錯,就是它。)

  ISO8859-1字符集:ASCII字符集+若干西歐字符,例如字母?、?.

  ISO8859-1編碼:使用8位表示一個字符,同時移除了原ASCII編碼中的控制符(即[0-31],及127)。

  Code page:(可以把"code page"認為是"編碼"的近義詞。至于為什么有這個名稱?歷史遺留問題。)

  ANSI code pages:你一定見過ANSI,想想另存文本文件時。ANSI code pages實際上是一系列的編碼集合,根據操作系統區(qū)域設置而激活其中一種作為默認ANSI編碼。例如公司電腦(英文系統)上的ANSI code page可能是1252,而家里的中文系統則可能是936.所以在家里可以用ANSI存儲一個包含中文的文本文件,在公司則不行??梢栽谧员礞I:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NLS\CodePage\ACP中查看到當前使用的ANSI code page. C#可以通過Encoding.Default查看。

  OEM code pages: OEM code pages是給控制臺應用程序(如SQLPLUS)使用的。除CJK環(huán)境(Chinese-Japanese-Korean)外,Windows使用不同的ANSI code page和OEM code page.例如,公司英文系統上使用的是437.可以使用CHCP命令查看當前使用的OEM code page, C#可以通過Console.OutputEncoding查看。

  Code page 1252:

  cp1252字符集:ASCII字符集+若干西歐字符+若干特殊符號,比如?、‰。

  cp1252編碼:使用8位表示一個字符。編碼范圍是[0-255](即Hex[00-FF]),[0-127]部分與ASCII相同,新增的大部分是西歐的字符,例如一些帶上標的字母?、?,以及像這樣一類特殊符號)

  PS1:現實中兩臺PC上的code page信息

  PC1:英文版Windows XP,ANSI code page=1252, OEMcode page=437

  PC2:中文版Windows 7,ANSI codepage=936, OEM code page=936

  PS2:cp1252與cp437編碼表下載請猛擊這里,早期控制臺應用程序常常需要畫一些粗糙的表格等等圖形,所以可以在437中看到不少不同的橫線豎線這一類的特殊符號。

  PS3:CP1252、ISO8859-1、ASCII比較,就實際使用的編碼范圍來說:CP1252>ISO8859-1>ASCII.ASCII是[0-127],CP1252是[0-255],ISO8859-1則移除了cp1252中[0-31]及127這些不可見的控制符,同進移除了[128-159](即Hex[80-9F])中的特殊符號。

  2. 字符集 2.1. 編碼schema

  § 單字節(jié)字符集:

  7bit: ASCII 7-bit American(US7ASCII)

  8bit: ISO8859-1 West European(WE8ISO8859P1)、EBCDICCode Page 500 8-bit West European(WE8EBCDIC500)、DEC 8-bit WestEruopean(WE8DEC)

  § 變長多字節(jié)字符集:例如Japanese Extended UNIX Code(JEUC)、ChineseGB2312-80(GB2312-80)、AL32UTF8(UTF-8)

  § 定長多字節(jié)字符集:只有National Character Set(AL16UTF16)是定長多字節(jié)字符集,是2個字節(jié)的Unicode編碼

  § Unicode(AL32UTF8,AL16UTF16,UTF8):Oracle使用AL32UTF8、UTF8、UTFE作為數據庫字符集,使用AL16UTF16和UTF8作為國家語言字符集。

  2.2. 數據庫字符集與國家字符集比較

  為什么要有兩個字符集?如果我知道只需要英文,設置數據庫字符集=US7ASCII,如果我知道只需要西歐字符,設置數據庫字符集=WE8MSWIN1252或者WE8ISO89859P1,或者干脆就用AL32UTF8.你看,我只需要設定"數據庫字符集",那么"國家字符集"有什么必要呢?

  其實,考慮到歷史遺留問題以及數據庫創(chuàng)建者們無法避免的"短視",很多現有數據庫都無法支持UNICODE字符集,例如要在現有的US7ASCII數據庫字符集的數據庫中存儲中文,這個時候"國家字符集"+NVARCHAR2這樣的組合就能救你一命了。對于數據類型為NVARCHAR2(以及NCHAR, NCLOB)的字段,它使用是國家字符集,與數據庫字符集的設置無關。自9i以后,國家字符集可選的只有AL16UTF16與AL32UTF8,UTF-16與UTF-8都是UNICODE編碼標準的實現,因些可以表示世界上幾乎所有的文字。

  當然,如果數據庫字符集本身就使了UNICODE字符集,就沒有必要使用NVARCHAR2, NCHAR, NCLOB這些類型了。

  數據庫字符集與國家字符集比較:

  數據庫字符集

  國家字符集

  在創(chuàng)建時定義

  在創(chuàng)建時定義

  不重建不能再改變

  除了一些例外,不重建不能再改變

  用char、varchar2、clob、long存放數據列

  用NCHAR、NVARCHAR2、NCLOB存放數據列

  可以存放變長字符集

  可以使用AL16UTF16或者UTF8存放Unicode

  Oracle對字符集的命名實際上有一定的規(guī)則可尋,例如:

  AL32UTF8

  【AL】支持所有語言(All Language)。

  【32】每字符最多占用32位(4字節(jié))。

  【UTF8】編碼為UTF-8.

  WE8MSWIN1252

  【WE】支持西歐語言(Western Europe)。

  【8】每字符需要占用8位(單字節(jié))。

  【MSWIN1252】編碼為CP1252.

  US7ASCII

  【US】表示美國(United States)。

[1] [2] [3]

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Oracle全球化支持:字符集系統介紹及服務器端、客戶端設置

Oracle全球化支持:字符集系統介紹及服務器端、客戶端設置:歡迎進入Oracle社區(qū)論壇,與200萬技術人員互動交流 >>進入 1. 字符集與編碼常識 字符集: 人們根據需要把某些字符收集到一處,并賦以名稱,于是便有了某某字符集。 例如: ASCII: ASCII字符集:包含大小寫英文、阿拉伯數字、標點,以及一些不可見的控制符共1
推薦度:
標簽: 系統 介紹 客戶
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top