漢字在電腦中是如何存儲與編碼的呢?


 

英語文字是拼音文字,所有文字均由26個字母拼組而成,所以使用一個字節表示一個字符足夠了。但漢字是象形文字,漢字的計算機處理技術比英文字符復雜得多,一般用兩個字節表示一個漢字。由於漢字有一萬多個,常用的也有六千多個,所以編碼采用兩字節的低7位共14個二進制位來表示。一般漢字的編碼方案要解決4種編碼問題。

1)漢字交換碼

漢字交換碼主要是用作漢字信息交換的。以國家標准局1980年頒布的《信息交換用漢字編碼字符集基本集》(代號為GB2312-80)規定的漢字交換碼作為國家標准漢字編碼,簡稱國標碼。

國標GB 2312-80規定,所有的國際漢字和符號組成一個94×94的矩陣。在該矩陣中,每一行稱為一個“區”,每一列稱為一個“位”,這樣就形成了94個區號(0194)和94個位號(0194)的漢字字符集。國標碼中有6763個漢字和628個其他基本圖形字符,共計7445個字符。其中規定一級漢字3755個,二級漢字3008個,圖形符號682個。一個漢字所在的區號與位號簡單地組合在一起就構成了該漢字的“區位碼”。在漢字區位碼中,高兩位為區號,低兩位為位號。因此,區位碼與漢字或圖形符號之間是一一對應的。一個漢字由兩個字節代碼表示。

2)漢字機內碼 http://www.bcua.cn 計算機博客

漢字機內碼又稱內碼或漢字存儲碼。該編碼的作用是統一了各種不同的漢字輸入碼在計算機內的表示。漢字機內碼是計算機內部存儲、處理的代碼。計算機既要處理漢字,又要處理英文,所以必須能區別漢字字符和英文字符。英文字符的機內碼是最高位為08ASCII碼。為了區分,把國標碼每個字節的最高位由0改為1,其余位不變的編碼作為漢字字符的機內碼。

一個漢字用兩個字節的內碼表示,計算機顯示一個漢字的過程首先是根據其內碼找到該漢字字庫中的地址,然后將該漢字的點陣字型在屏幕上輸出。

漢字的輸入碼是多種多樣的,同一個漢字如果采用的編碼方案不同,則輸入碼就有可能不一樣,但漢字的機內碼是一樣的。有專用的計算機內部存儲漢字使用的漢字內碼,用以將輸入時使用的多種漢字輸入碼統一轉換成漢字機內碼進行存儲,以方便機內的漢字處理。在漢字輸入時,根據輸入碼通過計算機或查找輸入碼表完成輸入碼到機內碼的轉換。如漢字國際碼(H)+8080H)=漢字機內碼(H)。

3)漢字輸入碼

漢字輸入碼也叫外碼,是為了通過鍵盤字符把漢字輸入計算機而設計的一種編碼。

英文輸入時,想輸入什么字符便按什么鍵,輸入碼和內碼是一致的。而漢字輸入規則不同,可能要按幾個鍵才能輸入一個漢字。漢字和鍵盤字符組合的對應方式稱為漢字輸入編碼方案。漢字外碼是針對不同漢字輸入法而言的,通過鍵盤按某種輸入法進行漢字輸入時,人與計算機進行信息交換所用的編碼稱為“漢字外碼”。對於同一漢字而言,輸入法不同,其外碼也是不同的。例如,對於漢字“啊”,在區位碼輸入法中的外碼是1601,在拼音輸入中的外碼是a,而在五筆字型輸入法中的外碼是KBSK。漢字的輸入碼種類繁多,大致有4種類型,即音碼、形碼、數字碼和音形碼。

4)漢字字形碼

漢字在顯示和打印輸出時,是以漢字字形信息表示的,即以點陣的方式形成漢字圖形。漢字字形碼是指確定一個漢字字形點陣的代碼(漢字字形碼)。一般采用點陣字形表示字符。

目前普遍使用的漢字字型碼是用點陣方式表示的,稱為“點陣字模碼”。所謂“點陣字模碼”,就是將漢字像圖像一樣置於網狀方格上,每格是存儲器中的一個位,16×16點陣是在縱向16點、橫向16點的網狀方格上寫一個漢字,有筆畫的格對應1,無筆畫的格對應0。這種用點陣形式存儲的漢字字型信息的集合稱為漢字字模庫,簡稱漢字字庫。

通常漢字顯示使用16×16點陣,而漢字打印可選用24×24點陣、32×32點陣、64×64點陣等。漢字字形點陣中的每個點對應一個二進制位,1字節又等於8個二進制位,所以16×16點陣字形的字要使用32個字節(16×16÷8字節=32字節)存儲,64×64點陣的字形要使用512個字節。

在16×16點陣字庫中的每一個漢字以32個字節存放,存儲一、二級漢字及符號共8836個,需要282.5KB磁盤空間。而用戶的文檔假定有10萬個漢字,卻只需要200KB的磁盤空間,這是因為用戶文檔中存儲的只是每個漢字(符號)在漢字庫中的地址(內碼)

來自bcua blog-電腦博客:http://www.bcua.cn/article/dlzzwx/616.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM