国标码简介
即GB國標碼:中文內碼之一,代表中文簡化字,在中國大陸廣泛使用,影響所及,使用量漸見普及。??“國家標準信息交換用漢字編碼”(GB2312-80標準),簡稱國標碼。國標碼是指1980年中國制定的用于不同的具有漢字處理功能的計算機系統間交換漢字信息時使用的編碼。國際碼是二字節(jié)碼, 用兩個七位二進制數編碼表示一個漢字。目前國標碼收入6763個漢字, 其中一級漢字(最常用)3755個, 二級漢字3008個, 另外還包括682個西文字符、圖符。 例如“巧”字的代碼是39H 41H, 在機內形式如下: 0 1 1 1 0 0 1 1 第一字節(jié) 0 0 0 0 0 1 第二字節(jié) 在計算機內部,漢字編碼和西文編碼是共存的,如何區(qū)分它們是個很重要的問題,因為對不同的信息有不同的處理方式。 方法之一是對于二字節(jié)的國標碼,將二個字節(jié)的最高位都置成“1”, 而ASCII碼所用字節(jié)最高位保持“0”,然后由軟件(或硬件)根據字節(jié)最高位來作出判斷。 字符代碼化是指用戶從鍵盤上輸入代表某個漢字的編碼。我們把采用不同的編碼系統以代表漢字進行輸入的方案(如數字碼、拼音碼和字形碼),稱為漢字的輸入法,區(qū)位碼、五筆字型碼、拼音碼、智能ABC、微軟拼音輸入法等都是其中的具體代表。 漢字通過編碼輸入計算機后,在其后的處理過程中,不同階段使用不同的代碼,首先通過鍵盤管理程序將接收到的輸入編碼轉換為0和1構成的機內碼,實現計算機的存儲、加工和傳輸處理。 同樣,存儲在計算機內部的機內碼也必須經轉換后才能恢復漢字的“本來面目”。這種轉換通常是由計算機的輸入/輸出設備來實現的, 有時還需要軟件來參與這種轉換過程。這個階段的漢字代碼稱為字形碼,用以顯示和打印輸出。
區(qū)位碼:
1980年,為了使每一個漢字有一個全國統一的代碼,我國頒布了第一個漢字編碼 的國家標準: GB2312-80《信息交換用漢字編碼字符集》基本集,這個字符集是我國中文信息處理技術的發(fā)展基礎,也是目前國內所有漢字系統的統一標準。
國標碼是一個四位十六進制數,區(qū)位碼是一個四位的十進制數,每個國標碼或區(qū)位碼都對應著一個唯一的漢字或符號,但因為十六進制數我們很少用到,所以大家常用的是區(qū)位碼,它的前兩位叫做區(qū)碼,后兩位叫做位碼。
? ? 漢字庫分布情況如下:
? ?? ? 一級漢字??16-55區(qū)
? ?? ? 二級漢字??56-87區(qū)
? ?? ? 三級漢字??1-9區(qū)
? ?? ? 空閑未用??10-15區(qū)
通常,在DOS下的各漢字系統中,同時按Alt鍵和F1鍵即可調用區(qū)位碼輸入方法。而在Windows中常用Ctrl+空格鍵和Ctrl+Shift鍵調出區(qū)位碼。如“2901”代表“健”字,“4582”代表“萬”字,“8150”代表“楮”字,這些都是漢字,用區(qū)位碼還可以很輕松地輸入特殊符號,比如,“0189”代表“※”(符號),“0528”代表“ゼ”(日本語),“0711”代表“Й”(俄文),“0949”代表“┭”(制表符)。
在區(qū)位碼中,01-09區(qū)為特殊字符,10-55區(qū)為一級漢字(3755個最常用的漢字,按拼音字母的次序排列),56-87區(qū)為二級漢字(3008個漢字,按部首次序排列), 在區(qū)位碼漢字輸入方法中,漢字編碼無重碼,在熟練掌握漢字的區(qū)位碼后,錄入漢字的速度是很快的,但若想記憶住全部區(qū)位碼是相當困難的,常使用于錄入特殊符號,如制表符、希臘字母等,這里簡單介紹幾個區(qū)。
部分國際區(qū)位編碼
區(qū)號:01 【各類符號】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0100 、 。 · ˉ ˇ ¨ 〃 々 - ~ ‖ … ' ' " " 〔 〕
0120 〈 〉 《 》 「 」『 』 〖 〗 【 】 ± × ÷ ∶ ∧ ∨ ∑ ∏
0140 ∪ ∩ ∈ ∷ √ ⊥ ∥ ∠ ⌒ ⊙ ∫ ∮ ≡ ≌ ≈ ∽ ∝ ≠ ≮ ≯
0160 ≤ ≥ ∞ ∵ ∴ ♂ ♀ ° ′ ″ ℃ $ ¤ ¢ £ ‰ § № ☆ ★
0180 ○ ● ◎ ◇ ◆ □ ■ △ ▲ ※ → ← ↑ ↓ 〓
區(qū)號:02 【各類數字】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0200 ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⒈ ⒉ ⒊
0220 ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ ⑴ ⑵ ⑶
0240 ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ ① ② ③
0260 ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ 一 二 三 四 五 六 七 八 九 十
0280 Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ
區(qū)號:03 【符號、字母】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0300 ! " # ¥ % & '( ) * + , - . / 0 1 2 3
0320 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G
0340 H I J K L M N O P Q R S T U V W X Y Z [
0360 \ ] ^ _ ` a b c d e f g h i j k l m n o
0380 p q r s t u v w x y z { | }  ̄
區(qū)號:06 【羅馬字母】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0600 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ
0620Υ Φ Χ Ψ Ω α β γ δ ε ζ η
0640θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
0660 0680
區(qū)號:08 【漢語拼音】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0800 ā á ǎ à ē é ě è ī í ǐ ì ō ó ǒ ò ū ú ǔ
0820 ù ǖ ǘ ǚ ǜ ü ê ㄅ ㄆ ㄇ
0840 ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ ㄕ ㄖ ㄗ ㄘ ㄙ ㄚ ㄛ
0860 ㄜ ㄝ ㄞ ㄟ ㄠ ㄡ ㄢ ㄣ ㄤ ㄥ ㄦ ㄧ ㄨ ㄩ
0880
區(qū)號:09 【制表字符】
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0900 ─ ━ │ ┃ ┄ ┅ ┆ ┈ ┉ ┉ ┊ ┋ ┌ ┍ ┎ ┏
0920 ┐ ┑ ┒ ┓ └ ┕ ┖ ┗ ┘ ┙ ┚ ┛ ├ ┝ ┞ ┟ ┠ ┡ ┢ ┣
0940 ┤ ┥ ┦ ┧ ┨ ┩ ┪ ┫ ┬ ┭ ┮ ┯ ┰ ┱ ┲ ┳ ┴ ┵ ┶ ┷
0960 ┸ ┹ ┺ ┻ ┼ ┽ ┾ ┿ ╀ ╁ ┃ ╃ ╄ ╅ ╆ ╇ ╈ ╉ ╊ ╋
0980
?
以國家標準局1980年頒布的《信息交換用漢字編碼字符集》基本集(代號為GB2312-80)規(guī)定的漢字交換碼作為國家標準漢字編碼。 GB2312-80中共有7445個字符符號:漢字符號6763個,一級漢字3755個(按漢語拼音字母順序排列),二級漢字3008個(按部首筆劃順序排列),非漢字符號682個。GB2312-80規(guī)定,所有的國標碼漢字及符號組成一個94×94的方陣。在此方陣中,每一行稱為一個“區(qū)”,每一列稱為一個“位”。這個方陣實際上組成一個有94個區(qū)(編號由01到94),每個區(qū)有94個位(編號由01到94)的漢字字符集。 一個漢字所在的區(qū)號和位號的組合就構成了該漢字的“區(qū)位碼”。其中,高兩位為區(qū)號,低兩位為位號。這樣區(qū)位碼可以惟一地確定某一漢字或字符;反之,任何一個漢字或符號都對應一個惟一的區(qū)位碼,沒有重碼。
| 1區(qū) | 鍵盤上沒有的各種符號 |
| 2區(qū) | 各種序號 |
| 3區(qū) | 鍵盤上的各種符號(按中文方式給出) |
| 4-5區(qū) | 日文字母 |
| 6區(qū) | 希臘字母 |
| 7區(qū) | 俄文字母 |
| 8區(qū) | 標識拼音聲調的母音及拼音字母名稱 |
| 9區(qū) | 制表符號 |
| 10-15區(qū) | 未用 |
| 16-55區(qū) | 一級漢字(按拼音字母順序排列) |
| 56-87區(qū) | 二級漢字(按部首筆劃順序排列) |
| 88-94區(qū) | 自定義漢字 |
區(qū)位碼分布情況如下:
?
由上可以看出,所有漢字與符號的94個區(qū),可以分為四個組:
①1-15區(qū):為圖形符號區(qū)。其中1-9區(qū)為標準符號區(qū);10-15區(qū)為自定義符號區(qū)。
②16-55區(qū):為一級漢字區(qū),包含3755個漢字。這些區(qū)中的漢字按漢語拼音順序排序,同音字按筆畫順序列出。
③56-87區(qū):為二級漢字區(qū),包含3008個漢字。這些區(qū)中的漢字是按部首筆劃順序排序的。
④88-94區(qū):為自定義漢字區(qū)。
國標碼規(guī)定,每個漢字(包括非漢字的一些符號)由2字節(jié)代碼表示。每個字節(jié)的最高位為0,只使用低7位,而低7位的編碼中又有34個是用于控制的,這樣每個字節(jié)只有27 - 34 = 94個編碼用于漢字。2個字節(jié)就有94×94=8836個漢字編碼。在表示一個漢字的2個字節(jié)中,高字節(jié)對應編碼表中的行號,稱為區(qū)號;低字節(jié)對應編碼表中的列號,稱為位號。
漢字國標碼的范圍用二進制表示是: 00100001 00100001 01111110 01111110 (1+32)10 (1+32)10 (94+32)10 (94+32)10 7位ASCII碼是128個字符組成的字符集。其中編碼值0 31(00000000 00011111)不對應任何印刷字符,通常稱為控制符,用于計算機通信中的通信控制或對計算機設備的功能控制。編碼值32(00100000)是空格字符SP。編碼值127(1111111)是刪除字符DEL。
漢字國標碼的起始二進制位置選擇00100001即(33)10是為了跳過ASCII碼的32個控制字符和空格字符。所以,漢字國標碼的高位和低位分別比對應的區(qū)位碼大(32)10或(00100000)2或(20)H,即: 國標碼高位 = 區(qū)碼 + 20H (H表示十六進制),國標碼低位 = 位碼 + 20H。
漢字是一種象形文字,無法直接用標準西文鍵盤輸入,必須經過轉換間接輸入;漢字的字數也較多,不能用單字節(jié)的ASCⅡ(256個字符)來表示。因此,按照不同的目的和需要,產生了多種漢字編碼系統與漢字輸入方法。
目前采用兩個字節(jié)(可以表示64K字符)的漢字編碼方案。由于漢字的應用范圍較廣(東南亞國家),漢字的編碼字符集不相同,中國大陸常用GB?/?GBK碼,臺灣BIG5。
漢字處理過程
漢字系統對每個漢字預先規(guī)定輸入計算機中的代碼,即漢字的外部碼(例如拼音輸入碼)。計算機為了識別漢字,要把漢字的外部碼轉換成內部碼(二進制代碼)進行存儲和處理。輸出時,還將漢字的內部碼轉換成漢字的字形碼。計算機處理漢字的總過程如下:
鍵盤管理程序?漢字處理程序?外部(輸入)碼?→?機內碼?→?字形(輸出)碼
(鍵盤)?(計算機存儲、傳輸)?(計算機輸出漢字)
↑?↓↑?↓
漢字信息?交換碼(國標碼)?漢字信息
↓?↑
其它系統代碼
交換碼?用于計算機與其他系統或設備之間進行漢字代碼信息交換的標準漢字代碼,目前最常使用的是國標碼1981年的GB2312-80,?7445;?2000的GB18030-2000,27000
特?點
每個漢字(圖形符號)用兩個字節(jié)表示,每個字節(jié)只用低7位,即最高位為0的二進制碼。
在128種編碼表示中,有94種用來表示漢字的編碼。此標準的漢字編碼表有94行、94列,分別為區(qū)號和位號。漢字編碼使用的高字節(jié)稱為區(qū)碼,低字節(jié)稱為位碼。
漢字分為兩級:一級為使用頻度高的常用漢字;
二級為次常用的漢字;
內部碼?也稱漢字內碼或漢字機內碼,是計算機對漢字進行存儲、運算、傳碼的實際代碼。
特?點
是由?0和1組成的二進制代碼。一個漢字對應一個機內碼,即漢字數目=機內碼數目;
一般用兩個字節(jié)表示一個漢字的內碼且每個字節(jié)最高位為?1。?還有少數三字節(jié)、四字節(jié)等內部碼最多能表示128×128?=?16384?個漢字和圖形符號;
機內碼目前雖未完全統一,但已趨于標準化。
內部碼與國標碼的對應關系:內碼=國標碼+8080
即國標碼每個字節(jié)最高位為1?→?內部碼。
例如:國標碼?3B7A?→?00111011?01111010?那么,機內碼?BBFA→?10111011?11111010
外部碼?也叫漢字輸入編碼,主要是從鍵盤(語音、手寫、光電)輸入計算機中的代表漢字的編碼。
鍵盤輸入方式
目前漢字輸入方案有數百種,基本上是直接利用西文標準鍵盤進行漢字輸入,每一種漢字輸入法都各自提供相應的鍵盤碼與漢字機內碼(碼表),編碼方案大致可分以下四?類:
數?碼?用一串數字來替代漢字的編碼,特點是無重碼、碼長適中、速度快、但難記憶。主要有區(qū)位碼、?電報碼。
區(qū)位碼
屬于數碼的一種輸入法。區(qū)位碼雖不常用,但它包含其它輸入法中未包含的其他信息,如一些特殊符號、序號、日文、希臘文、俄文等,因此,在一些特定場合下,也大有用途。另外,由區(qū)位碼可以推算出某個信息的國標碼和機內碼。
特?點?由四位十進制數表示。前兩位--區(qū)碼;后兩位-位碼。?區(qū)位碼共有94個區(qū),每個區(qū)有94個位。因此,可存儲94×94?個信息。其中,1-9區(qū)存放為非漢字信息;?16-87區(qū)存放漢字信息;10-15,?88-94為空白區(qū),?用戶可在此擴充漢字和特殊符號。
用?法?例如:?輸入4602?→?微?;?輸入?2790?→?機。
?
?
?
二
一、????????????漢字字符集的概念
1、國標GB2312-80《信息交換用漢字編碼字符集》:該字符集收錄了6763個常用漢字,其中一級漢字3755個,二級漢字3008個。另外還收錄了各種符號682個,合計7445個。
2、國標GB13000.1-1993(等同于國際標準?ISO/IEC?10646.1-1993)《?通用多八位編碼字符集(UCS)?第一部分:體系結構與基本多文種平面》:又稱大字符集字庫GBK,是《GB2312-80》、《GB12345-90》、《BIG5》等字符集標準的超集,一共收錄了中、日、韓20902個漢字。
3、國標GB18030-2000《信息交換用漢字編碼字符集基本集的擴充》是未來我國計算機系統必須遵循的基礎性標準之一,收錄了27564個漢字。
二、????????????漢字信息的編碼知識
1、區(qū)位碼:GB2312-80字符集,組成一個94*94的矩陣。每一行稱為一個“區(qū)”,每一列稱為一個“位”。一個漢字的區(qū)號和位號合在一起構成“區(qū)位碼”,?區(qū)位碼的編碼范圍是:0101~9494。
2、國標碼:國標碼=(區(qū)位碼的十六進制表示)+2020H,國標碼的取值范圍:2121H~7E7EH。
3、機內碼:中文或西文信息在計算機系統中的代碼表示稱為機內碼。ASCII碼是一種西文機內碼,用一個字節(jié)表示。漢字機內碼用連續(xù)兩個字節(jié)表示,每個字節(jié)的最高位是1。
機內碼?=?國標碼+8080H?=(區(qū)位碼的十六進制表示)+A0A0H。
GB2312-80的機內碼編碼范圍為:A1A1H~FEFEH。
4、輸入碼:?漢字輸入碼是指直接從鍵盤輸入的各種漢字輸入方法的編碼,屬于外碼。主要分順序碼(無重碼)、音碼、形碼和音形碼或形音碼四類。
5、字形碼:
(1)向量(矢量)法:將漢字分解成筆畫,每種筆畫使用一段段的直線(向量)近似地表示,這樣每個字形都可以變成一連串的向量。
(2)點陣法(字模點陣碼):每一個漢字以點陣形式存儲在記錄介質上,有點的地方為“1”,空白的地方為“0”。
16*16點陣:16*16/8=32字節(jié)
24*24點陣:24*24/8=72字節(jié)
?
一個漢字字模占用的字節(jié)數根據漢字庫的漢字大小不同而不同。以HZK16、HZK12點陣字庫為例,字模中每一點使用一個二進制位(Bit)表示,如果是1,則說明此處有點,若是0,則說明沒有。這樣,一個16×16點陣的漢字總共需要16*16/8=32個字節(jié)表示,一個12×12點陣的漢字總共需要16*12/8=24個字節(jié)表示
字模的表示順序為:先從左到右,再從上到下,也就是先畫左上方的8個點,再是右上方的8個點,然后是第二行左邊8個點,右邊8個點,依此類推,畫滿16×16個點。因此,HZK16中漢字在漢字庫中具體位置的計算公式為:(94*(qh-1)+(wh-1))*32;?HZK12中漢字在漢字庫中具體位置的計算公式為:(94*(qh-1)+(wh-1))*24
漢字“房”的機內碼為十六進制的“B7BF”,其中“B7”表示區(qū)碼,“BF”表示位碼。所以“房”的區(qū)位碼為0xB7BF-0xA0A0=0x171F。將區(qū)碼和位碼分別轉換為十進制得漢字“房”的區(qū)位碼為“2331”,即“房”的點陣位于第23區(qū)的第31個字的位置,相當于在文件HZK16中的位置為第32×[(23-1)×94+(31-1)]=67136B以后的32個字節(jié)為“房”的顯示點陣;相當于在文件HZK12中的位置為第24×[(23-1)×94+(31-1)]=50362B以后的24個字節(jié)為“房”的顯示點陣
輸入碼、區(qū)位碼、國標碼與機內碼
輸入碼、區(qū)位碼、國標碼與機內碼,這些字對每一位computer fan 來說,可能都不陌生,但其中的聯系與區(qū)別,可能就不那么清楚了,(筆者作為一名中專電腦教師,經常遇到同學問類似的問題),下面就這問題講述一下,以饗讀者。
我們知道,鍵盤是當前微機的主要輸入設備,;輸入碼就是使用英文鍵盤輸入漢字時的編碼。目前,我國已推出的輸入碼有數百種,但用戶使用較多的約為十幾種,按輸入碼編碼的主要依據,大體可分為順序碼、音碼、形碼、音形碼四類,如“保” 字,用全拼,輸入碼為碼為“BAO”,用區(qū)位碼,輸入碼為“1703”,用五筆字型則為“WKS”。
計算機只識別由0、1組成的代碼,ASCII碼是英文信息處理的標準編碼,漢字信息處理也必須有一個統一的標準編碼。我國國家標準局于1981年5月頒布了《信息交換用漢字編碼字符集——基本集》,代號為GB2312-80,共對6763個漢字和682個圖形字符進行了編碼,其編碼原則為:漢字用兩個字節(jié)表示,每個字節(jié)用七位碼(高位為0),;國家標準將漢字和圖形符號排列在一個94行94列的二維代碼表中,;每兩個字節(jié)分別用兩位十進制編碼,前字節(jié)的編碼稱為區(qū)碼,后字節(jié)的編碼稱為位碼,此即區(qū)位碼,;如“保”字在二維代碼表中處于17區(qū)第3位,區(qū)位碼即為“1703 ”。
國標碼并不等于區(qū)位碼,它是由區(qū)位碼稍作轉換得到,其轉換方法為:先將十進制區(qū)碼和位碼轉換為十六進制的區(qū)碼和位碼,;這樣就得了一個與國標碼有一個相對位置差的代碼,;再將這個代碼的第一個字節(jié)和第二個字節(jié)分別加上20H,就得到國標碼。如:“保” 字的國標碼為3123H,它是經過下面的轉換得到的:1703D->1103H->+20H->3123H。
國標碼是漢字信息交換的標準編碼,但因其前后字節(jié)的最高位為0,與ASCII碼發(fā)生沖突,如“保” 字,國標碼為31H和23H,而西文字符“1”和“#”的SCII也為31H和23H,現假如內存中有兩個字節(jié)為31H和23H,;這到底是一個漢字 ,還是兩個西文字符“1”;和“#”?于是就出現了二義性,顯然,國標碼是不可能在計算機內部直接采用的,于是,;漢字的機內碼采用變形國標碼,其變換方法為:將國標碼的每個字節(jié)都加上128,即將兩個字節(jié)的最高位由0改1,其余7位不變,如:由上面我們知道,“保”字的國標碼為3123H,前字節(jié)為00110001B,后字節(jié)為00100011B,高位改1為10110001B和10100011B 即為B1A3H,因此, 字的機內碼就是B1A3H;。
顯然,漢字機內碼的每個字節(jié)都大于128,這就解決了與西文字符的ASCII碼沖突的問題。
如上所述,漢字輸入碼、區(qū)位碼、;國標碼與機內碼都是漢字的編碼形式,它們之間有著千絲萬縷的聯系,但其間的區(qū)別也是不容忽視的。
總結
- 上一篇: 没有电脑怎么安装wifi路由器没电脑没宽
- 下一篇: Z如何查看显卡好坏如何查看电脑显卡