接觸了計算機的一些人,不論其學習時間長短,經常會問我些問題:漢字和一些符號是如何輸入的,有無規律可循,等等。今天開始,我慢慢道來。
ASCII(American Standard Code for Information Interchange,美國信息交換標準代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。它是現今最通用的單字節編碼系統,並等同於國際標準ISO/IEC 646。
計算機技術始於美國,創始人(國)大都具有制訂標準的權力。
ASCII碼是由美國國家標準學會(American National Standard Institute , ANSI )制定的,標準的單字節字符編碼方案,用於基於文本的數據,共128個。起始於50年代後期,在1967年定案。
它最初是美國國家標準,供不同計算機在相互通信時用作共同遵守的西文字符編碼標準,它已被國際標準化組織(International Organization for Standardization, ISO)定為國際標準,稱為ISO 646標準。適用於所有拉丁文字字母。
因十進位、十六進位使用得多,列於表上。2、8進位反之,未列上。
鍵盤和滑鼠每次敲擊,都有唯一編碼代表具體符號或功能,這樣才精準不亂。
ASCII 碼,使用指定的7位或8位二進位數組合來表示128 或256 種可能的字符,還有8、10、16位幾種表達方式。
標準ASCII 碼,也叫基礎ASCII碼,使用7 位二進位數(剩下的1位二進位為0)來表示所有的大寫和小寫字母,數字0 到9、標點符號, 以及在美式英語中使用的特殊控制字符。
其中:0~31及127(共33個)是控制字符或通信專用字符,顯示不出來。如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(響鈴)等;通信專用字符:SOH(文頭)、EOT(文尾)、ACK(確認)等;ASCII值為8、9、10 和13 分別轉換為退格、制表、換行和回車字符。
32~126(共95個)是字符(32是空格),其中48~57為0到9十個阿拉伯數字。
65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算符號等。
如:計算機上的DEL(delete)鍵,十進位ASCII碼為127,十六進位為7F。
擴展ASCII
1981年,美國IBM公司公布了IBM PC ROM256個字符的字符集,即IBM擴展字符集。擴展ASCII 字符是從128 到255(0x80-0xff)的字符,但不再是國際標準。
1985年,美國MS公司公布 Windows字符集,被稱作「ANSI字符集」,遵循了ANSI草案和ISO標準(ANSI/ISO8859-1-1987,簡「Latin 1」。)
1987年4月代碼頁437,字符的映像代碼,在MS-DOS3.3出現。
ASCII拼圖
問題提出
1、ASCII碼是美國人制訂的美國標準,不能良好滿足其它講英語國家的需要。例如英國的英鎊符號(£)在哪裡?
2、拉丁語字母表重音符號,又如何表示?
3、使用斯拉夫字母表的希臘語、希伯來語、阿拉伯語和俄語,怎麼辦?
4、始於中國的象形文字,如中國漢字,日本和朝鮮文字,又怎麼表示?
1967年,國際標準化組織(ISO:International Standards Organization)推薦一個ASCII的變種,代碼0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D「為國家使用保留」,而代碼0x5E、0x60和0x7E標為「當國內要求的特殊字符需要8、9或10個空間位置時,可用於其它圖形符號」。
DBCS(雙字節字符集,double-byte character set),解決中國、日本和韓國的象形文字符和ASCII的某種兼容性。
DBCS從256代碼開始,就像ASCII一樣。與任何行為良好的代碼頁一樣,最初的128個代碼是ASCII。
漢字編碼
(1)漢字國標碼和區位碼
計算機中一個漢字用兩個字節的編碼表示,我國制定了「中華人民共和國國家標準信息交換漢字編碼字符集(基本集GB2312—1980)」,簡稱國標碼,是計算機進行漢字信息處理和漢字信息交換的標準編碼。
在該編碼中,共收錄漢字和圖形符號7445個,其中一級常用漢字3755個(按漢語拼音字母順序排列),二級常用漢字3008個(按部首順序排列),圖形符號682個。
在GB2312-1980中規定,全部國標漢字及符號組成一個94×94的矩陣。在此矩陣中,每一行稱為一個「區」,每一列稱為一個「位」。於是構成了一個有94個區(01~94區),每個區有94個位(01~94位)的漢字字符集。區碼與位碼組合在一起就形成了「區位碼」,唯一地確定某一漢字或符號。
區位碼的分布規則如下:
1)01~09區:圖形符號區。
2)10~15區:自定義符號區。
3)16~55區:一級漢字區,按漢字拼音排序,同音字按筆畫順序。
4)56~87區:二級漢字區,按偏旁部首、筆畫排序。
5)88~94區:自定義漢字區。
漢字輸入碼
漢字輸入碼,就是用於使用西文鍵盤輸入漢字的編碼。每個漢字對應一組由鍵盤符號組成的編碼,不同的漢字輸入法其輸入碼不同。漢字輸入碼也稱外碼。
常見的漢字輸入編碼方案可分為如下4類:
1)數碼:用數字組成的等長編碼,典型代表有區位碼、電報碼。
2)音碼:根據漢字的讀音組成的編碼,典型代表有全拼碼和雙拼碼。
3)形碼:根據漢字的形狀、結構特徵組成的編碼,典型代表有五筆字型、表形碼。
4)音形碼:將漢字讀音與其結構特徵綜合考慮的編碼,典型代表有自然碼、首尾拼音碼。
漢字內碼
無論用戶用哪種輸入法,漢字輸入到計算機後都轉換成漢字內碼進行存儲,以方便機內的漢字處理。漢字內碼是採用雙字節的變形國標碼,在每個字節的低7位與國標碼相同,每個字節的最高位為1,以與ASCII碼字符編碼區別。
漢字字形碼
漢字字形碼(漢字輸出碼),是將點陣組成的漢字模型數位化,形成一串二進位數稱為漢字字形碼,其主要用於輸出漢字。輸出漢字時,將漢字字形碼再還原為由點陣構成的漢字,所以漢字字形碼又被稱為漢字輸出碼。
漢字是一種象形文字,每一個漢字可以看成是一個特定的圖形,這種圖形可以用點陣、 輪廓向量、骨架向量等多種方法表示,而最基本的是用點陣表示。如果用16x16點陣來表示 一個漢字,則一個漢字佔16行,每一行有16個點,其中每一個點用一個二進位位表示,值「0」 表示暗,值「1」表示亮。由於計算機存儲器的每個字節有8個二進位位,因此,16個點要用 兩個字節來存放,16x16點陣的一個漢字字形需要用32個字節來存放,這32個字節中的信息 就構成了一個16x16點陣漢字的字模。
以上只是簡單介紹,讓大家對計算機字符編碼有個基本印象,下回給大家介紹萬國碼,包括世界上所有語言文字。好東西等著吧!
(長按二維碼識別關注)