什么是Unicode
Unicode(統(tǒng)一碼、萬國碼、單一碼)是計算機(jī)科學(xué)領(lǐng)域里的一項(xiàng)業(yè)界標(biāo)準(zhǔn),包括字符集、編碼方案等。Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,它為每種語言中的每個字符設(shè)定了統(tǒng)一并且唯一的二進(jìn)制編碼,以滿足跨語言、跨平臺進(jìn)行文本轉(zhuǎn)換、處理的要求。1990年開始研發(fā),1994年正式公布。
Unicode 是為了解決傳統(tǒng)的字符編碼方案的局限而產(chǎn)生的,例如ISO 8859所定義的字符雖然在不同的國家中廣泛地使用,可是在不同國家間卻經(jīng)常出現(xiàn)不兼容的情況。很多傳統(tǒng)的編碼方式都有一個共同的問題,即容許電腦處理雙語環(huán)境(通常使用拉丁字母以及其本地語言),但卻無法同時支持多語言環(huán)境(指可同時處理多種語言混合的情況)。
作用
能夠使計算機(jī)實(shí)現(xiàn)跨語言、跨平臺的文本轉(zhuǎn)換及處理。
什么是ASCII
ASCII(American Standard Code for Information Interchange,美國信息交換標(biāo)準(zhǔn)代碼)是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語和其他西歐語言。它是現(xiàn)今最通用的單字節(jié)編碼系統(tǒng),并等同于國際標(biāo)準(zhǔn)ISO/IEC 646。
請注意,ASCII是American Standard Code for Information Interchange縮寫,而不是ASCⅡ(羅馬數(shù)字2),有很多人在這個地方產(chǎn)生誤解。
產(chǎn)生
計算機(jī)中,所有的數(shù)據(jù)在存儲和運(yùn)算時都要使用二進(jìn)制數(shù)表示(因?yàn)橛嬎銠C(jī)用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數(shù)字還有一些常用的符號(例如*、#、@等)在計算機(jī)中存儲時也要使用二進(jìn)制數(shù)來表示,而具體用哪些二進(jìn)制數(shù)字表示哪個符號,當(dāng)然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那么大家就必須使用相同的編碼規(guī)則,于是美國有關(guān)的標(biāo)準(zhǔn)化組織就出臺了ASCII編碼,統(tǒng)一規(guī)定了上述常用符號用哪些二進(jìn)制數(shù)來表示。
美國標(biāo)準(zhǔn)信息交換代碼是由美國國家標(biāo)準(zhǔn)學(xué)會(American National Standard Institute , ANSI )制定的,標(biāo)準(zhǔn)的單字節(jié)字符編碼方案,用于基于文本的數(shù)據(jù)。起始于50年代后期,在1967年定案。它最初是美國國家標(biāo)準(zhǔn),供不同計算機(jī)在相互通信時用作共同遵守的西文字符編碼標(biāo)準(zhǔn),它已被國際標(biāo)準(zhǔn)化組織(International Organization for Standardization, ISO)定為國際標(biāo)準(zhǔn),稱為ISO 646標(biāo)準(zhǔn)。適用于所有拉丁文字字母。
表述方式
ASCII 碼使用指定的7 位或8 位二進(jìn)制數(shù)組合來表示128 或256 種可能的字符。標(biāo)準(zhǔn)ASCII 碼也叫基礎(chǔ)ASCII碼,使用7 位二進(jìn)制數(shù)(剩下的1位二進(jìn)制為0)來表示所有的大寫和小寫字母,數(shù)字0 到9、標(biāo)點(diǎn)符號, 以及在美式英語中使用的特殊控制字符。其中:
0~31及127(共33個)是控制字符或通信專用字符(其余為可顯示字符),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(響鈴)等;通信專用字符:SOH(文頭)、EOT(文尾)、ACK(確認(rèn))等;ASCII值為8、9、10 和13 分別轉(zhuǎn)換為退格、制表、換行和回車字符。它們并沒有特定的圖形顯示,但會依不同的應(yīng)用程序,而對文本顯示有不同的影響。
32~126(共95個)是字符(32是空格),其中48~57為0到9十個阿拉伯?dāng)?shù)字。
65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其余為一些標(biāo)點(diǎn)符號、運(yùn)算符號等。
同時還要注意,在標(biāo)準(zhǔn)ASCII中,其最高位(b7)用作奇偶校驗(yàn)位。所謂奇偶校驗(yàn),是指在代碼傳送過程中用來檢驗(yàn)是否出現(xiàn)錯誤的一種方法,一般分奇校驗(yàn)和偶校驗(yàn)兩種。奇校驗(yàn)規(guī)定:正確的代碼一個字節(jié)中1的個數(shù)必須是奇數(shù),若非奇數(shù),則在最高位b7添1;偶校驗(yàn)規(guī)定:正確的代碼一個字節(jié)中1的個數(shù)必須是偶數(shù),若非偶數(shù),則在最高位b7添1。后128個稱為擴(kuò)展ASCII碼。許多基于x86的系統(tǒng)都支持使用擴(kuò)展(或“高”)ASCII。擴(kuò)展ASCII 碼允許將每個字符的第8 位用于確定附加的128 個特殊符號字符、外來語字母和圖形符號。
UNICODE與ASCII的區(qū)別
最早只有127個字母被編碼到計算機(jī)里,也就是大小寫英文字母、數(shù)字和一些符號,這個編碼表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母z的編碼是122。
但是要處理中文顯然一個字節(jié)是不夠的,至少需要兩個字節(jié),而且還不能和ASCII編碼沖突,所以,中國制定了GB2312編碼,用來把中文編進(jìn)去。
你可以想得到的是,全世界有上百種語言,日本把日文編到Shift_JIS里,韓國把韓文編到Euc-kr里,各國有各國的標(biāo)準(zhǔn),就會不可避免地出現(xiàn)沖突,結(jié)果就是,在多語言混合的文本中,顯示出來會有亂碼。
因此,Unicode應(yīng)運(yùn)而生。Unicode把所有語言都統(tǒng)一到一套編碼里,這樣就不會再有亂碼問題了。
Unicode標(biāo)準(zhǔn)也在不斷發(fā)展,但最常用的是用兩個字節(jié)表示一個字符(如果要用到非常偏僻的字符,就需要4個字節(jié))。現(xiàn)代操作系統(tǒng)和大多數(shù)編程語言都直接支持Unicode。
新的問題又出現(xiàn)了:如果統(tǒng)一成Unicode編碼,亂碼問題從此消失了。但是,如果你寫的文本基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的存儲空間,在存儲和傳輸上就十分不劃算。
1.ASCII的特點(diǎn)
ASCII 是用來表示英文字符的一種編碼規(guī)范。每個ASCII字符占用1 個字節(jié),因此,ASCII 編碼可以表示的最大字符數(shù)是255(00H—FFH)。這對于英文而言,是沒有問題的,一般只什么用到前128個(00H--7FH,最高位為0)。而最高位為1 的另128 個字符(80H—FFH)被稱為“擴(kuò)展ASCII”,一般用來存放英文的制表符、部分音標(biāo)字符等等的一些其它符號。
但是對于中文等比較復(fù)雜的語言,255個字符顯然不夠用。于是,各個國家紛紛制定了自己的文字編碼規(guī)范,其中中文的文字編碼規(guī)范叫做“GB2312—80”, 它是和ASCII 兼容的一種編碼規(guī)范, 其實(shí)就是利用擴(kuò)展ASCII沒有真正標(biāo)準(zhǔn)化這一點(diǎn),把一個中文字符用兩個擴(kuò)展ASCII 字符來表示,以區(qū)分ASCII 碼部分。
但是這個方法有問題,最大的問題就是中文的文字編碼和擴(kuò)展ASCII 碼有重疊。而很多軟件利用擴(kuò)展ASCII 碼的英文制表符來畫表格,這樣的軟件用到中文系統(tǒng)中,這些表格就會被誤認(rèn)作中文字符,出現(xiàn)亂碼。另外,由于各國和各地區(qū)都有自己的文字編碼規(guī)則,它們互相沖突,這給各國和各地區(qū)交換信息帶來了很大的麻煩。
2.UNICODE的產(chǎn)生
要真正解決這個問題,不能從擴(kuò)展ASCII 的角度入手,UNICODE作為一個全新的編碼系統(tǒng)應(yīng)運(yùn)而生,它可以將中文、法文、德文……等等所有的文字統(tǒng)一起來考慮,為每一個文字都分配一個單獨(dú)的編碼。
3.什么是UNICODE
Unicode與ASCII一樣也是一種字符編碼方法,它占用兩個字節(jié)(0000H—FFFFH),容納65536 個字符,這完全可以容納全世界所有語言文字的編碼。在Unicode 里,所有的字符都按一個字符來處理, 它們都有一個唯一的Unicode 碼。
4.使用UNICODE的好處
使用Unicode 編碼可以使您的工程同時支持多種語言, 使您的工程國際化。即在不同語言的系統(tǒng)下不至于產(chǎn)生亂碼。
評論
查看更多