複製鏈接
請複製以下鏈接發送給好友

Unicode碼

鎖定
Unicode是一個編碼方案,Unicode 是為了解決傳統的字符編碼方案的侷限而產生的,它為每種語言中的每個字符設定了統一併且唯一的二進制編碼,以滿足跨語言、跨平台進行文本轉換、處理的要求。Unicode 編碼共有三種具體實現,分別為utf-8,utf-16,utf-32,其中utf-8佔用一到四個字節,utf-16佔用二或四個字節,utf-32佔用四個字節。Unicode 碼在全球範圍的信息交換領域均有廣泛的應用。 [1] 
中文名
Unicode碼
外文名
Unicode
文    字
中、日、韓
字    符
UCS-2
分    類
計算機科學

Unicode碼定義

Unicode碼擴展自ASCII字元集。在嚴格的ASCII中,每個字元用7位元表示,或者電腦上普遍使用的每字元有8位元寬;而Unicode使用全16位元字元集。這使得Unicode能夠表示世界上所有的書寫語言中可能用於電腦通訊的字元、象形文字和其他符號。Unicode最初打算作為ASCII的補充,可能的話,最終將代替它。考慮到ASCII是電腦中最具支配地位的標準,所以這的確是一個很高的目標。
Unicode影響到了電腦工業的每個部分,但也許會對作業系統和程式設計語言的影響最大。從這方面來看,我們已經上路了。Windows NT從底層支持Unicode。
計算機中用得最廣泛的字符集及其編碼,是由美國國家標準局(ANSI)制定的ASCII碼(American Standard Code for Information Interchange,美國標準信息交換碼),它已被國際標準化組織(ISO)定為國際標準,稱為ISO 646標準。適用於所有拉丁文字字母,ASCII碼有7位碼和8位碼兩種形式。 [2] 

Unicode碼編碼方法

因為1位二進制數可以表示(2^1=)2種狀態:0、1;而2位二進制數可以表示(2^2)=4種狀態:00、01、10、11;依次類推,7位二進制數可以表示(2^7=)128種狀態,每種狀態都唯一地編為一個7位的二進制碼,對應一個字符(或控制碼),這些碼可以排列成一個十進制序號0~127。所以,7位ASCII碼是用七位二進制數進行編碼的,可以表示128個字符
第0~32號及第127號(共34個)是控制字符或通訊專用字符,如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BEL(振鈴)等;通訊專用字符:SOH(文頭)、EOT(文尾)、ACK(確認)等;

Unicode碼ASCII控制字符

二進制
十進制
十六進制
縮寫
可以顯示的表示法
名稱/意義
00000000
0
00
NUL
空字符(Null)
00000001
1
01
SOH
標題開始
00000010
2
02
STX
本文開始
00000011
3
03
ETX
本文結束
00000100
4
04
EOT
傳輸結束
00000101
5
05
ENQ
請求
00000110
6
06
ACK
確認迴應
00000111
7
07
BEL
響鈴
00001000
8
08
BS
退格
00001001
9
09
HT
水平定位符號
00001010
10
0A
LF
換行鍵
00001011
11
0B
VT
垂直定位符號
00001100
12
0C
FF
換頁鍵
00001101
13
0D
CR
歸位鍵
00001110
14
0E
SO
取消變換(Shift out)
00001111
15
0F
SI
啓用變換(Shift in)
00010000
16
10
DLE
跳出數據通訊
00010001
17
11
DC1
設備控制一(XON 啓用軟件速度控制)
00010010
18
12
DC2
設備控制二
00010011
19
13
DC3
設備控制三(XOFF 停用軟件速度控制)
00010100
20
14
DC4
設備控制四
00010101
21
15
NAK
確認失敗迴應
00010110
22
16
SYN
同步用暫停
00010111
23
17
ETB
區塊傳輸結束
00011000
24
18
CAN
取消
00011001
25
19
EM
連接介質中斷
00011010
26
1A
SUB
替換
00011011
27
1B
ESC
跳出
00011100
28
1C
FS
文件分割符
00011101
29
1D
GS
組羣分隔符
00011110
30
1E
RS
記錄分隔符
00011111
31
1F
US
單元分隔符
01111111
127
7F
DEL
刪除
第33~126號(共94個)是字符,其中第48~57號為0~9十個阿拉伯數字;65~90號為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算符號等。 [3] 
注意:在計算機的存儲單元中,一個ASCII碼值佔一個字節(8個二進制位),其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。奇校驗規定:正確的代碼一個字節中1的個數必須是奇數,若非奇數,則在最高位b7添1;偶校驗規定:正確的代碼一個字節中1的個數必須是偶數,若非偶數,則在最高位b7添1。 [3] 
增添Unicode碼內容:它前128個字符就是ASCII碼,之後是擴展碼。在Unicode碼中,各個字符塊基於同樣的標準。其中有希臘字母,西里爾文,亞美尼亞文,希伯來文等。而漢文,韓語,日語的象形文字佔用從0X3000到0X9FFF的代碼。最傑出的地方是,它只有一個字符集,有效的避免了雙字節字符集的二義性。缺點是:佔用的內存空間比ASCII大1倍。 [4] 
Unicode碼:Unicode碼也是一種國際標準編碼,採用二個字節編碼,與ASCII碼不兼容。在網絡、Windows系統和很多大型軟件中得到應用。
參考資料
  • 1.    鹿文鵬, 薛若娟. Unicode與UTF-8編碼轉換方法研究[J]. 計算機時代, 2005(9).
  • 2.    李建文. 計算機字符編碼——Unicode與Windows:科學出版社,2018.5
  • 3.    譚浩強 . C程序設計(第4版):清華大學出版社,2010.6
  • 4.    Richard Gillam .Unicode Demystified: A Practical Programmer's Guide to the Encoding Standard:Addison-Wesley Professional , 2002.9