ASCII碼是什么
ASCII ((American Standard Code for Information Interchange): 美國信息交換標準代碼)是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語和其他西歐語言。它是最通用的信息交換標準,并等同于國際標準ISO/IEC 646。ASCII第一次以規(guī)范標準的類型發(fā)表是在1967年,最后一次更新則是在1986年,到目前為止共定義了128個字符。
為什么需要ASCII碼
在計算機中,所有的數(shù)據(jù)在存儲和運算時都要使用二進制數(shù)表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)以及0、1等數(shù)字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數(shù)來表示,而具體用哪些二進制數(shù)字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那么大家就必須使用相同的編碼規(guī)則,于是美國有關(guān)的標準化組織就出臺了ASCII編碼,統(tǒng)一規(guī)定了上述常用符號用哪些二進制數(shù)來表示 [2] 。
美國標準信息交換代碼是由美國國家標準學會(American National Standard Institute , ANSI )制定的,是一種標準的單字節(jié)字符編碼方案,用于基于文本的數(shù)據(jù)。它最初是美國國家標準,供不同計算機在相互通信時用作共同遵守的西文字符編碼標準,后來它被國際標準化組織(International Organization for Standardization, ISO)定為國際標準,稱為ISO 646標準。適用于所有拉丁文字字母 [3] 。
局限性和后續(xù)
在英語中,用128個符號編碼便可以表示所有,但是用來表示其他語言,128個符號是不夠的。比如,在法語中,字母上方有注音符號,它就無法用 ASCII 碼表示。于是,一些歐洲國家就決定,利用字節(jié)中閑置的最高位編入新的符號。比如,法語中的é的編碼為130(二進制10000010)。這樣一來,這些歐洲國家使用的編碼體系,可以表示最多256個符號。
但是,這里又出現(xiàn)了新的問題。不同的國家有不同的字母,因此,哪怕它們都使用256個符號的編碼方式,代表的字母卻不一樣。比如,130在法語編碼中代表了é,在希伯來語編碼中卻代表了字母Gimel (?),在俄語編碼中又會代表另一個符號。但是不管怎樣,所有這些編碼方式中,0--127表示的符號是一樣的,不一樣的只是128--255的這一段 [5] 。
至于亞洲國家的文字,使用的符號就更多了,漢字就多達10萬左右。一個字節(jié)只能表示256種符號,肯定是不夠的,就必須使用多個字節(jié)表達一個符號。比如,簡體中文常見的編碼方式是 GB2312,使用兩個字節(jié)表示一個漢字,所以理論上最多可以表示 256 x 256 = 65536 個符號 。