由于計算機要處理的數據信息十分龐雜,有些數據庫所代表的含義又使人難以記憶。為了便于使用,容易記憶,常常要對加工處理的對象進行編碼,用一個編碼符合代表一條信息或一串數據。對數據進行編碼在計算機的管理中非常重要,可以方便地進行信息分類、校核、合計、檢索等操作。因此,數據編碼就成為計算機處理的關鍵。即不同的信息記錄應當采用不同的編碼,一個碼點可以代表一條信息記錄。人們可以利用編碼來識別每一個記錄,區別處理方法,進行分類和校核,從而克服項目參差不齊的缺點,節省存儲空間,提高處理速度。
今天
沈陽網站開發就來和大家一起聊聊網站建設常用到的數據編碼。
1.數字編碼(BCD編碼)
數字在計算機中除了通過進制轉換為二進制外,還有一種比較重要的編碼形式,即BCD碼,BCD是Binary-Coded-Decimal 的縮寫。BCD碼有多重編碼方案,但最常用的是8421碼。它將1位十進制數用4位二進制數來表示,而4位二進制數各位權值由高到低一次是2³、2²、2¹、2º,即8、4、2、1、,故稱之為8421碼。十進制數與BCD碼的對應關系如表1.2所示。
注意:BCD碼并不能直接轉換成二進制,而應該先轉換成十進制,再轉換成二進制。
2.西文字符編碼
對于系文字符編碼最常用的是ASCⅡ字符編碼,即American Staddard Code for Information Interchange(美國信息交換標準代碼),已被國際標準化組織(ISO)定為國際標準。
ASCⅡ碼分為標準ASCⅡ碼和擴展ASCⅡ碼,兩者的區別在于用來編碼的位數不同,前者有7個二進制代碼組成,因此共可以表示2 ,即128個字符,如表1.3所示。
ASCⅡ碼的每個字符由7位二進制表示,其排列順序為d6d5d4d3d2d1d0,其中,d6、d5、d4為高危,d3、d2、d1d0.在計算機內部,存儲與操作都是以字節為單位,一個字節有8個位,因此,一個字符在計算機內實際用8位表示。真長情況下,最高以為d7為“0”。在需要奇偶校驗時,這意味可用于存放奇偶校驗的值,此時稱這意味為校驗位。
我們可以通過查閱ASCⅡ表來確定某個字符的ASCⅡ碼,方法是在表中找到字符的位置,然后確定它所在位置的列和行,根據列確定高位碼,根據行確定低位碼,再將他們合并在一起就是該字符的ASCⅡ碼。如,字母A所在的列碼是100,行所在的碼是0001,那么字母A的ASCⅡ是1000001,轉換為十進制是65.
ASCⅡ碼是128個字符組成的字符集。其中編碼值0~31(0000000~0011111)不對應任何可印刷字符,通常稱為控制符,用于計算機通信中的通信控制或對計算機設備的功能控制。編碼值為32(0100000)的死字符SP。編碼指為127(1111111)的是刪除控制DEL碼……其余94個字符為可印刷字符。
西文字符除了常用的ASCⅡ編碼外,還有另一種EBCDIC(Extended Binaey Coded Decimal Interchange Code,擴展的二一十進制交換碼)碼。這種字符編碼主要用在大型機器中。EBCDIC采用8位基2碼表示,有256個編碼狀態,但是選用其中一部分。
3.漢字編碼
ASCⅡ碼只對引文字母、數字和標點符號進行了編碼。為了用計算機處理漢漢字,同樣需要對漢子進行編碼。由于漢字是象形文字,種類繁多,編碼困難一些,在漢字處理系統中,輸入、內部處理、輸出環節對漢字編碼的要求也不盡相同,因此漢字信息處理系統在處理漢字和詞語是,要進行一系列的漢字代碼轉換。如圖1.4所示。
(1)輸入碼
輸入碼是為將漢字輸入計算機而變質的代碼,也稱為外碼。目前輸入碼的方案有上百種之多,按照不同的設計思想,可分為數字編碼、拼音編碼、字形編碼、和音形編碼四類,其中最常用的有拼音編碼和字形編碼
①數字編碼時用等長的數字串為漢字注意編號,以這個編號作為漢字的輸入碼。
②拼音編碼時以漢字的讀音為基礎的輸入法。
③字形編碼時以漢字的字形結構為基礎的輸入編碼。
④音形碼是兼顧漢字的讀音和字形的輸入編碼。
(2)交換碼
交換碼用于漢字輸入碼和內部碼的交換。1981年,我國頒布了代號為GB231280《信息交換使用漢字編碼字符集基本集》的漢字編碼字符集,是中文信息處理的國家標準,是交換碼的標準,所以交換碼也稱為國標碼。該標準包含漢字6763個,圖形符號682個。
國標碼是雙字節代碼,即用兩個字節為漢字編碼,第一個字節表示區碼,第二個字節
表示位碼。
(3)內部碼
內部碼(簡稱內碼)是漢字在計算機內的基本表示形式,是計算機機對漢字進行識別、存儲、處理和傳輸所用的編碼。
(4)字形碼
字形碼是為了解決漢字的顯示和打印等輸出問題而進行的編碼。漢字的字形碼表示漢字字形的字模數據,又稱漢字字模。字模通常有點陣和矢量兩種漢字字形碼,它是漢字的輸出形式。點陣字模將漢字看作由許多點組成的圖形,這些點構成點陣。點陣字形碼使用方便、易于理解,但不同大小的字形需要不同的點陣庫,且字形放大時容易產生鋸齒狀失真。矢量字形碼用數學曲線捕述,字體中包含了符號邊界卜的關鍵點,連線的導數信息等。矢量字體的特點是可以無限放大或縮小。