Bear's House |
認識中文字元碼 |
||||||||||||||||||||||||||||||||||||||
|
二、單位元組編碼(一)七位元位元組編碼美國標準資訊交換碼(American Standard Code for Information Interchange, ASCII)為美國的國家標準,係用以規範各電腦之間交換文數字資訊、電腦與週邊設備之間傳輸文數字資訊,以及電腦網路上傳輸文本檔案(text file)所用的英文字元與字元碼。目前,ASCII可以說是最重要的基本電腦標準,凡是能接受和處理英文資訊的電腦系統都必然配置有內建的ASCII。 ASCII的字元碼是由依序排列的七個位元所構成的位元組,由左而右分別命名為b7、b6、b5、b4、b3、b2和b1,其中b7為最大數位(most significant digit),其權值相等於十進數64,b1為最小數位(least significant digit),其權值等於十進數1,如圖2-1所示。例如,英文字母“C”的ASCII碼為“1000011”,其值等於十進制64+2+1=67。七個位元可提供27=128個 碼位,以十進制表示為0至127,以十六進制表示則是00h至7Fh。這些十六進數字的高數位(即左邊的數位)對應於七個位元中的前三者b7、b6和b5,而低數位(即右邊的數位)則對應於七個位元裡的後四者b4、b3、b2和b1。
圖2-1 ASCII的編碼格式 圖2-2所示為ASCII的字元集編碼表:總共128個字元,分別填入對應的 碼位,安排成八個直行(對應於十六進制的高數位,即字元碼的前三個位元b7、b6和b5),每一直行為16個字元(對應於十六進制的低數位,即字元碼的後四個位元b4、b3、b2和b1。)。ASCII的字元集共包含94個圖形字元、空格(SP, space)和33個控制字元。94個圖形字元包括:26個大寫和26個小寫英文字母、10個阿拉伯數字、9個標點符號、6個括號,以及17個其它符號。這些圖形字元的字元碼範圍,以十進制表示為33至126,或以十六進制表示為21h至7Eh。「空格」的字元碼為32或20h,是個相當特別的字元,同時扮演著圖形字元與控制字元的雙重角色。「空格」雖然不能直接顯示出圖形,但卻在螢光幕上或報表紙上佔有和其它圖形字元同樣大小的空間,因此可視為圖形字元。在英文文件裡,詞和詞(單字和單字)之間必須插入空格,以便分隔前後相鄰的兩個英文詞。換言之,空格同時扮演著控制字元的角色:即英文語句的詞間分隔符(word separator)。
圖2-2 ASCII的字元集與編碼表 ASCII其餘的33個字元則是控制字元,其 碼位從0到31(或00h到1Fh)共32個,再加上字元碼127(或7Fh)。ASCII的控制字元分成五組,分別為:
上述控制字元的功能和說明,請詳見相關標準ISO/IEC 646(或對應的CNS 5205)和ISO/IEC 6429(或對應的CNS 13479)。 ASCII不僅是美國的國家標準,它的94個圖形字元並且已經被1991年版的國際標準ISO/IEC 646指定為圖形字元集G0的「國際參照版本(IRV, International Reference Version)」。而且ASCII的前32個控制字元(從00h到1Fh)也同時被ISO/IEC 646列為控制字元集C0的參考附件。
(二)八位元位元組編碼現代的電腦,對於系統內部的資料表達或處理,絕大多數都已經是以八個位元為一個位元組。這八個位元,由左而右,可分別命名為b8、b7、b6、b5、b4、b3、b2和b1,其中b8為最大數位,其權值等於十進數128,而b1為最小數位,其權值等於十進制1,如圖2-3所示。八個位元可提供總共256個 碼位(比起七個位元的碼位整整多出一倍),以十進制表示為0至255,而以十六進制表示則是00h至FFh。這些十六進數字的高數位(即左邊的數位)對應於八個位元當中的前四者b8、b7、b6和b5,而低數位(即右邊的數位)則對應於八個位元中的後四者b4、b3、b2和b1。
圖2-3 八位元的編碼格式 當ASCII做為內碼使用時,習慣上都會在最大位元b7的左邊加上一個設定為“0”的位元b8,因而由七位元交換碼變成八位元內碼。例如,大寫英文字母“A”的ASCII碼原為“1000001”,當做內碼使用則變成“01000001”。這種做法,意味著八位元內碼的256個 碼位當中,會有一半的編碼空間(即b8=1的128個碼位)閒置不用。因此廠商為了在PC或某些終端機上(例如:VT220)提供ASCII所無的一些字元(例如:非英文的字母、數學符號、畫表格用的邊、角、線段等),特別將b8=1的128個 碼位另外賦予字元,稱為延伸ASCII。圖2-4所示即IBM相容PC的延伸ASCII字元集編碼表,其中碼位FFh的字元為空白(BNK, blank)。請注意,延伸ASCII並非既定的共同標準,不同廠牌、規格的PC和終端機的內建延伸ASCII字元集,所選用字元的未必相同,而且即使是相同的字元,其字元碼也很可能不同。換言之,選用不同規格終端機的電腦,除非它們的延伸ASCII字元和字元碼相同,否則彼此的文數字資訊將不能直接交換。
圖2-4 IBM PC的延伸ASCII字元集與編碼表
|