GBK编码/GBK内码/Big5
GB2312-80/國標碼/區位碼
用2字節來編碼漢字和中文符號,并兼容ASCII標準字符集。一級漢字3,755個,二級漢字3,008個,共收錄6763個漢字。但是在Unicode中并不連續分布,散落在CJK統一漢字字符區 0x4E00-0x9FA5 的20902個漢字中。
編碼方式
編碼邏輯定義高8位稱為“區”,低8位稱為“位”, 所以也稱 GB2312 為區位碼。使用區位輸入法,例如輸入1601,即16區第1個字,得到碼表中第一個漢字“啊”。一級漢字按拼音排序,二級漢字按部首排序,此外,該標準還包括標點符號,數種西文字母、圖形、數碼等符號682個。
編碼時為了兼容 ASCII,兩個字節使用比 0xA0 值要大的數據來存儲。即查詢時字符編碼要加上 0xA0A0 才得到真正的存儲數據,因此,中文字“啊”實際在內存的值是 0xB0A1 而不是 0x1001。也因此區位碼定義了94區,每區有94位字符,即區碼存儲時取值 0xA1~0xFE 剛好有94個區,位碼也一樣。
缺點
只有6千來個常用漢字,僅覆蓋中國大陸99.75%的使用頻率,對于人名、古漢語等方面出現的罕用字就不能處理了,這導致了后來漢字擴展規范GBK及GB 18030漢字字符集的出現,而是完全向后兼容的,即GB 18030可以直接替換GBK和GB2312編碼,GBK可以直接替換GB2312編碼。
GBK
漢字百科字符集,收錄超過2萬漢字,是對原有的 GB2312 的擴充?,F有的漢字數量絕不止這個數,還有大量未編碼的字符,對于這些未進行編碼的字符就稱為非編碼字符集 Noncoded Character Sets。
GBK字符分為5個部分,各部分內容及數量如下:
GB18030-2000
GB 18030-2000 標準發布時,兼容收錄GB2312的一級漢字3,755個,二級漢字3,008個,增添漢字20,770個,符號為894個。GB18030的更新版本在2005年發布,保持兼容部分,增添漢字數量為63,481個,其它符號6,184個。這是一個六區字符集,囊括韓,蒙,藏,維吾爾,彝,傣泐。
編碼空間分布三大塊,單字節和雙字節部分兼容ASCII字符集、GB2312和GBK,四字節部分兼顧 Unicode BMP。
BIG5
港澳臺地區則多用大五碼 BIG5,對應Win32平臺 Code Page 950,收錄一級漢字5,401個,二級漢字7,652個,符號441個。后者進行了修訂形成BIG5+,增添漢字7,619個,符號數量則為913個。高位字節使用了0x81-0xFE,低位字節使用 0x40-0x7E,0xA1-0xFE。在Big5的分區 0x8140-0xA0FE 保留給使用者自定義字符,稱為造字區,這種設計也是算得上奇葩的。Big5還重復地收錄兩個字:“兀、?!?#xff08;0xA461及0xC94A)、“嗀、嗀”(0xDCD1及0xDDFC)。
中文編碼方案是最混亂的編碼方案,名目之多,讓人有點惱火的程度,而Unicode就是最佳下火良藥。
總結
以上是生活随笔為你收集整理的GBK编码/GBK内码/Big5的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的Android之路
- 下一篇: Agc012_E Camel and O