字符集編碼知識詳解
字符集編碼知識詳解
ASCII
ASCII碼是7位編碼,編碼範圍是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯數字和標點符號等字元。其中0x00-0x20和0x7F共33個控制字元。
只支援ASCII碼的系統會忽略每個位元組的最高位,只認為低7位是有效位。HZ字元編碼就是早期為了在只支援7位ASCII系統中傳輸中文而設計的編碼。早期很多郵件系統也只支援ASCII編碼,為了傳輸中文郵件必須使用BASE64或者其他編碼方式。
•ASCII碼錶
–在計算機中,通常用一個位元組(8位)存放一個字元的ASCII碼
00000000~01111111 (高位補0)
如’a’ 的ascii 編碼97 即為01100001
•漢字編碼
–在計算機中,通常用擴充套件的ASCII碼作為漢字編碼
10000000~11111111 (最高位置1)
如’中 的編碼為 214 ,208 即 11010110 11010000’
Gb231280
GB2312碼是中華人民共和國國家漢字資訊交換用編碼,全稱《資訊交換用漢字編碼字符集--基本集》,由國家標準總局釋出,1981年5月1日實施,通行於大陸。新加坡等地也使用此編碼。
GB2312收錄簡化漢字及符號、字母、日文假名等共7445個圖形字元,其中漢字佔6763個。GB2312規定"對任意一個圖形字元都採用兩個位元組表示,每個位元組均採用七位編碼表示",習慣上稱第一個位元組為"高位元組",第二個位元組為"低位元組"。GB2312-80包含了大部分常用的一、二級漢字,和9區的符號。該字符集是幾乎所有的中文系統和國際化的軟體都支援的中文字符集,這也是最基本的中文字符集。其編碼範圍是高位0xa1-0xfe,低位也是0xa1-0xfe;漢字從0xb0a1開始,結束於0xf7fe。
GB2312將程式碼表分為94個區,對應第一位元組(0xa1-0xfe);每個區94個位(0xa1-0xfe),對應第二位元組,兩個位元組的值分別為區號值和位號值加32(2OH),因此也稱為區位碼。01-09區為符號、數字區,16-87區為漢字區(0xb0-0xf7),10-15區、88-94區是有待進一步標準化的空白區。GB2312將收錄的漢字分成兩級:第一級是常用漢字計3755個,置於16-55區,按漢語拼音字母/筆形順序排列;第二級漢字是次常用漢字計3008個,置於56-87區,按部首/筆畫順序排列。故而GB2312最多能表示6763個漢字。
編碼範圍:0xA1A1--0xFEFE
漢字範圍:0xB0A1--0xF7FE
編碼方式:
GB2312規 定"對任意一個圖形字元都採用兩個位元組表示,每個位元組均採用七位編碼表示",習慣上稱第一個位元組為"高位元組",第二個位元組為"低位元組"。
GB2312的編碼範圍為2121H-777EH,與ASCII有重疊,通行方法是將GB碼兩個位元組的最高位置1以示區別。
GB2312(1980年)一共收錄了7445個字元,包括6763個漢字和682個其它符號。漢字區的內碼範圍高位元組從B0-F7,低位元組從A1-FE,佔用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。與ASCII有重疊,通行方法是將GB碼兩個位元組的最高位置1以示區別。
背景知識:
GB2312碼是中華人民共和國國家漢字資訊交換用編碼,全稱《資訊交換用漢字編碼字符集--基本集》,由國家標準總局釋出,1981年5月1日實施,通行於大陸。新加坡等地也使用此編碼。該字符集是幾乎所有的中文系統和國際化的軟體都支援的中文字符集,這也是最基本的中文字符集。其編碼範圍是高位0xa1-0xfe,低位也是0xa1-0xfe;漢字從0xb0a1開始,結束於0xf7fe。16-87區為漢字區(0xb0-0xf7)。故而GB2312最多能表示6763個漢字。
備註:
·GB2312的原文還是區位碼,從區位碼到內碼,需要在高位元組和低位元組上分別加上A0。
·在DBCS中,GB內碼的儲存格式始終是big endian,即高位在前。
· GB2312的兩個位元組的最高位都是1。但符合這個條件的碼位只有128*128=16384個。所
以GBK和GB18030的低位元組最高位都可能不是1。不過這不影響DBCS字元流的解析:在讀取DBCS字元流時,只要遇到高位為1的位元組,就可以將下兩個位元組作為一個雙位元組編碼,而不用管低位元組的高位是什麼。
GBK編碼
GBK是GB2312-80的擴充套件,是向上相容的。它包含了20902個漢字
範圍:0×8140 - 0xFEFE
漢字範圍:
GBK/2:OXBOA1-F7FE, 收錄 GB2312 漢字 6763 個,按原序排列;
GBK/3:OX8140-AOFE,收錄 CJK 漢字 6080 個;
GBK/4:OXAA40-FEAO,收錄 CJK 漢字和增補的漢字 8160 個。
編碼方式:
GBK 亦採用雙位元組表示,總體編碼範圍為 8140-FEFE 之間,首位元組在 81-FE 之間,尾位元組在 40-FE 之間,剔除 XX7F 一條線。
字符集:
GBK 共收入21886個漢字和圖形符號,包括:
GB2312 中的全部漢字、非漢字元號;
BIG5 中的全部漢字;
與 ISO-10646 相應的國家標準 GB13000 中的其它 CJK 漢字;
以上合計 20902 個漢字。
其它漢字、部首、符號,共計 984 個。
背景知識:
GBK 向下與 GB2312 完全相容,向上支援 ISO-10646 國際標準,是一種過渡時期的編碼實現方式。
GBK是GB2312-80的擴充套件,是向上相容的。它包含了20902個漢字,其編碼範圍是0x8140-0xfefe,剔除高位0x80的字位。其所有字元都可以一對一對映到Unicode2.0。
備註:
微軟公司自Windows 95 簡體中文版開始支援 GBK 程式碼,標準叫法是 Windows codepage 936,也叫做 GBK(國家標準),它也是 8-bit 的變長編碼。據我所知 GBK從來沒成為正式的國家標準,只不過因為Windows 的普及,它已經成為事實上的標準了。但目前的多數搜尋引擎都不能很好地支援 GBK 漢字。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10159839/viewspace-166538/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Base64編碼知識詳解
- 字符集和字元編碼詳解字元
- 中文字符集與字元編碼的基礎知識字元
- web知識進階——字元編解碼Web字元
- ASM 知識詳解ASM
- Web開發者應知的URL編碼知識Web
- Git基礎知識詳解Git
- Redis基礎知識詳解Redis
- Spring知識點詳解Spring
- 程式設計師必須知道的字符集與字元編碼詳解程式設計師字元
- ORACLE字符集基礎知識Oracle
- 急速入門前端編碼知識前端
- 音訊編碼基礎知識音訊
- 字符集編碼(二):字元編碼模型字元模型
- C# 基礎知識:字元編碼、編碼轉換C#字元
- react的詳細知識講解!React
- 【詳解】WebSocket相關知識整理Web
- Oracle-SQL知識詳解(一)OracleSQL
- mysql 下字符集知識彙總MySql
- 帶你瞭解 Unicode和UTF-8編碼知識Unicode
- Java字元編碼知識簡介(zt)Java字元
- 字符集和字元編碼字元
- IPv6基礎知識詳解
- 深入mysql基礎知識的詳解MySql
- 執行緒池知識點詳解執行緒
- 詳解網路知識:iptables規則
- JPEG檔案編/解碼詳解 .
- Web設計師需要編碼知識嗎?Web
- locale 詳解 字符集概念
- 深入理解Emoji(一) —— 字符集,字符集編碼
- URL與URL編碼詳解
- Python字元編碼詳解Python字元
- 字符集編碼(三):UnicodeUnicode
- C#重點知識詳解(二) (轉)C#
- C#重點知識詳解(一) (轉)C#
- 手機直播平臺開發一定要懂的知識:編解碼
- 字符集編碼(上):Unicode 之前Unicode
- 深入解析字符集和字元編碼字元