ASCII編碼與Unicode編碼

2018-09-27 09:56 更新
前面我們已經(jīng)講到,計(jì)算機(jī)是以二進(jìn)制的形式來存儲(chǔ)數(shù)據(jù)的,它只認(rèn)識(shí)0和1兩個(gè)數(shù)字,我們在屏幕上看到的文字,在存儲(chǔ)到內(nèi)存之前也都被轉(zhuǎn)換成了二進(jìn)制(0和1序列)。

可想而知,特定的文字必然對(duì)應(yīng)著固定的二進(jìn)制,否則將無法轉(zhuǎn)換。那么,怎樣將文字與二進(jìn)制對(duì)應(yīng)呢?這就需要有一套規(guī)范,計(jì)算機(jī)公司和軟件開發(fā)者都必須遵守。

ASCII碼

我們知道,一個(gè)二進(jìn)制位(Bit)有0、1兩種狀態(tài),一個(gè)字節(jié)(Byte)有8個(gè)二進(jìn)制位,有256種狀態(tài),每種狀態(tài)對(duì)應(yīng)一個(gè)符號(hào),就是256個(gè)符號(hào),從00000000到11111111。

計(jì)算機(jī)誕生于美國,早期的計(jì)算機(jī)使用者大多使用英文,上世紀(jì)60年代,美國制定了一套英文字符與二進(jìn)制位的對(duì)應(yīng)關(guān)系,稱為ASCII碼,沿用至今。

ASCII碼規(guī)定了128個(gè)英文字符與二進(jìn)制的對(duì)應(yīng)關(guān)系,占用一個(gè)字節(jié)(實(shí)際上只占用了一個(gè)字節(jié)的后面7位,最前面1位統(tǒng)一規(guī)定為0)。例如,字母 a 的的ASCII碼為 01100001,那么你暫時(shí)可以理解為字母 a 存儲(chǔ)到內(nèi)存之前會(huì)被轉(zhuǎn)換為 01100001,讀取時(shí)遇到 01100001 也會(huì)轉(zhuǎn)換為 a。
完整的ASCII碼表請(qǐng)查看:www.asciima.com

Unicode編碼

隨著計(jì)算機(jī)的流行,使用計(jì)算機(jī)的人越來越多,不僅限于美國,整個(gè)世界都在使用,這個(gè)時(shí)候ASCII編碼的問題就凸現(xiàn)出來了。

ASCII編碼只占用1個(gè)字節(jié),最多只能表示256個(gè)字符,我大中華區(qū)10萬漢字怎么表示,日語韓語拉丁語怎么表示?所以90年代又制定了一套新的規(guī)范,將全世界范圍內(nèi)的字符統(tǒng)一使用一種方式在計(jì)算機(jī)中表示,這就是Unicode編碼(Unique Code),也稱統(tǒng)一碼、萬國碼。

Unicode 是一個(gè)很大的集合,現(xiàn)在的規(guī)??梢匀菁{100多萬個(gè)符號(hào),每個(gè)符號(hào)的對(duì)應(yīng)的二進(jìn)制都不一樣。Unicode 規(guī)定可以使用多個(gè)字節(jié)表示一個(gè)字符,例如 a 的編碼為 01100001,一個(gè)字節(jié)就夠了,”好“的編碼為 01011001 01111101,需要兩個(gè)字節(jié)。

為了兼容ASCII,Unicode 規(guī)定前0~127個(gè)字符與ASCII是一樣的,不一樣的只是128~255的這一段。
如果你希望將字符轉(zhuǎn)換為Unicode編碼,請(qǐng)查看:在線Unicode/中文轉(zhuǎn)換工具
完整的Unicode編碼請(qǐng)查看:unicode.org
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)