C語言基礎之中文編碼格式GB2312(4)


GB2312歷史回顧

GB2312編碼范圍:A1A1-FEFE,其中漢字編碼范圍:B0A1-F7FE。

GB2312編碼是第一個漢字編碼國家標准,由中國國家標准總局1980年發布,1981年5月1日開始使用。GB2312編碼共收錄漢字6763個,其中一級漢字3755個,二級漢字3008個。同時,GB2312編碼收錄了包括拉丁字母、希臘字母、日文平假名及片假名字母、俄語西里爾字母在內的682個全角字符。

分區表示
GB2312編碼對所收錄字符進行了“分區”處理,共94個區,每區含有94個位,共8836個碼位。這種表示方式也稱為區位碼。
01-09區收錄除漢字外的682個字符。
10-15區為空白區,沒有使用。
16-55區收錄3755個一級漢字,按拼音排序。
56-87區收錄3008個二級漢字,按部首/筆畫排序。
88-94區為空白區,沒有使用。
舉例來說,“啊”字是GB2312編碼中的第一個漢字,它位於16區的01位,所以它的區位碼就是1601。

雙字節編碼
GB2312規定對收錄的每個字符采用兩個字節表示,第一個字節為“高字節”,對應94個區;第二個字節為“低字節”,對應94個位。所以它的區位碼范圍是:0101-9494。區號和位號分別加上0xA0就是GB2312編碼。例如最后一個碼位是9494,區號和位號分別轉換成十六進制是5E5E,0x5E+0xA0=0xFE,所以該碼位的GB2312編碼是FEFE。

GB2312編碼范圍:A1A1-FEFE,其中漢字的編碼范圍為B0A1-F7FE,第一字節0xB0-0xF7(對應區號:16-87),第二個字節0xA1-0xFE(對應位號:01-94)

若要查詢具體字符的編碼請前往:漢字字符集編碼查詢


 GB2312編碼格式采用的是區位碼格式:GB2312為雙字節編碼,其中第一個字節為高字節,對應1-94個區,第二個字節為低字節,對應1-94個位。我們知道一個字節對於8位,8位的數可以表示的范圍0-256,但是這里采用的范圍是1-94,1-94是一個規定或者說是規范。當區號和位號分別加上0xA0就是GB2312編碼,這也是一個規定。

我們再來捋一下區號和位號的組合體:其范圍0101  -  9494。

接下來再加上一個0xA0十六進制數變成GB2312編碼:高字節的最小數1轉換成GB2312碼:1(10) + 0xA0 = 0x01 + 0xA0 = 0xA1,高字節的最大數94轉GB2312碼:94(10) + 0xA0 = 0x5E + 0xA0 = 0xFE

得GB2312編碼范圍:A1A1 - FEFE

原文鏈接:https://www.qqxiuzi.cn/zh/hanzi-gb2312-bianma.php


免責聲明!

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



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