| ASCII碼表2008-06-11 09:48美國標準信息交換標準碼( American Standard Code for Information Interchange, ASCII )
 在計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機比較傻,只有0和1兩位數的二進制比較適合于它使用),同樣的,象a、b、c、d 這樣的52個字母(包括大寫)、以及0、1、2等數字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪個數字 表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通訊而不造成混亂,那么大家就必須使用相同的編碼規則,于是美國有關的 標準化組織就出臺了所謂的ASCII編碼,統一規定了上述常用符號用哪個二進制數來表示。 美國標準信息交換代碼是由美國國家標準學會(American National Standard Institute , ANSI )制定的,標準的單字節字符編碼方案,用于基于文本的數據。起始于50年代后期,在1967年定案。它最初是美國國家標準,供不同計算機在相互通信時用作共同遵守的西文字符編碼標準,它已被國際標準化組織(International Organization for Standardization, ISO)定為國際標準,稱為ISO 646標準。適用于所有拉丁文字字母。ASCII 碼使用指定的 7 位或 8 位二進制數組合來表示 128 或 256 種可能的字符。標準 ASCII 碼也叫基礎ASCII碼,使用 7 位二進制數來表示所有的大寫和小寫字母,數字 0 到 9、標點符號, 以及在美式英語中使用的特殊控制字符。其中:
 0~32及127(共34個)是控制字符或通訊專用字符(其余為可顯示字符),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(振鈴)等;通訊專用字符:SOH(文頭)、EOT(文尾)、ACK(確認)等;ASCII值為 8、9、10 和 13 分別轉換為退格、制表、換行和回車字符。它們并沒有特定的圖形顯示,但會依不同的應用程序,而對文本顯示有不同的影響。
 33~126(共94個)是字符,其中48~57為0到9十個阿拉伯數字;65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其余為一些標點符號、運算符號等。?
 同時還要注意,在標準ASCII中,其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗 和偶校驗兩種。奇校驗規定:正確的代碼一個字節中1的個數必須是奇數,若非奇數,則在最高位b7添1;偶校驗規定:正確的代碼一個字節中1的個數必須是偶 數,若非偶數,則在最高位b7添1。
 后128個稱為擴展ASCII碼,目前許多基于x86的系統都支持使用擴展(或“高”)ASCII。擴展 ASCII 碼允許將每個字符的第 8 位用于確定附加的 128 個特殊符號字符、外來語字母和圖形符號。以下為標準ASCII表: Bin?????????????Dec?????Hex???????縮寫/字符??????????????????????????????????????解釋0000 0000???0????????00??????????NUL (null)??????????????????????????????????????空字符
 0000 0001???1????????01??????????SOH (start of handing)?????????????標題開始?
 0000 0010???2????????02??????????STX (start of text)?????????????????????????正文開始?
 0000 0011???3????????03??????????ETX (end of text)??????????????????????????正文結束
 0000 0100???4????????04??????????EOT (end of transmission)???????傳輸結束?
 0000 0101???5????????05??????????ENQ (enquiry)??????????????????????????????請求?
 0000 0110???6????????06??????????ACK (acknowledge)??????????????????????收到通知?
 0000 0111???7????????07??????????BEL (bell)?????????????????????????????????????響鈴
 0000 1000???8????????08??????????BS (backspace)???????????????????????????退格?
 0000 1001???9????????09??????????HT (horizontal tab)???????????????????????水平制表符?
 0000 1010 10????????0A??????????LF (NL line feed, new line)???????????換行鍵?
 0000 1011 11????????0B??????????VT (vertical tab)???????????????????????????垂直制表符?
 0000 1100 12????????0C??????????FF (NP form feed, new page)??????換頁鍵?
 0000 1101 13????????0D??????????CR (carriage return)????????????????????回車鍵
 0000 1110 14????????0E??????????SO (shift out)???????????????????????????????不用切換?
 0000 1111 15????????0F??????????SI (shift in)???????????????????????????????啟用切換?
 0001 0000 16????????10??????????DLE (data link escape)?????????????數據鏈路轉義?
 0001 0001 17????????11??????????DC1 (device control 1)?????????????設備控制1?
 0001 0010 18????????12??????????DC2 (device control 2)?????????????????設備控制2?
 0001 0011 19????????13??????????DC3 (device control 3)?????????????????設備控制3?
 0001 0100 20????????14??????????DC4 (device control 4)?????????????????設備控制4?
 0001 0101 21????????15??????????NAK (negative acknowledge)????????拒絕接收?
 0001 0110 22????????16??????????SYN (synchronous idle)????????????????同步空閑?
 0001 0111 23????????17??????????ETB (end of trans. block)?????????????傳輸塊結束?
 0001 1000 24????????18??????????CAN (cancel)????????????????????????????????取消/作廢
 0001 1001 25????????19??????????EM (end of medium)?????????????????????介質中斷?
 0001 1010 26????????1A??????????SUB (substitute)???????????????????????????替補?
 0001 1011 27????????1B??????????ESC (escape)???????????????????????????????溢出?
 0001 1100 28????????1C??????????FS (file separator)????????????????????????文件分割符?
 0001 1101 29????????1D??????????GS (group separator)???????????????????分組符?
 0001 1110 30????????1E??????????RS (record separator)?????????????記錄分離符?
 0001 1111 31????????1F??????????US (unit separator)??????????????????????單元分隔符?
 0010 0000 32????????20??????????空格0010 0001 33????????21??????????!
 0010 0010 34????????22??????????"
 0010 0011 35????????23??????????#
 0010 0100 36????????24??????????$
 0010 0101 37????????25??????????%
 0010 0110 38????????26??????????&
 0010 0111 39????????27??????????'
 0010 1000 40????????28??????????(
 0010 1001 41????????29??????????)
 0010 1010 42????????2A??????????*
 0010 1011 43????????2B??????????+
 0010 1100 44????????2C??????????,
 0010 1101 45????????2D??????????-
 0010 1110 46????????2E??????????.
 0010 1111 47????????2F??????????/
 0011 0000 48????????30??????????0
 0011 0001 49????????31??????????1
 0011 0010 50????????32??????????2
 0011 0011 51????????33??????????3
 0011 0100 52????????34??????????4
 0011 0101 53????????35??????????5
 0011 0110 54????????36??????????6
 0011 0111 55????????37??????????7
 0011 1000 56????????38??????????8
 0011 1001 57????????39??????????9
 0011 1010 58????????3A??????????:
 0011 1011 59????????3B??????????;
 0011 1100 60????????3C??????????<
 0011 1101 61????????3D??????????=
 0011 1110 62????????3E??????????>
 0011 1111 63????????3F???????????
 0100 0000 64????????40??????????@
 0100 0001 65????????41??????????A0100 0010 66????????42??????????B
 0100 0011 67????????43??????????C
 0100 0100 68????????44??????????D
 0100 0101 69????????45??????????E
 0100 0110 70????????46??????????F
 0100 0111 71????????47??????????G
 0100 1000 72????????48??????????H
 0100 1001 73????????49??????????I
 0100 1010 74????????4A??????????J
 0100 1011 75????????4B??????????K
 0100 1100 76????????4C??????????L
 0100 1101 77????????4D??????????M
 0100 1110 78????????4E??????????N
 0100 1111 79????????4F??????????O
 0101 0000 80????????50??????????P
 0101 0001 81????????51??????????Q
 0101 0010 82????????52??????????R
 0101 0011 83????????53??????????S
 0101 0100 84????????54??????????T
 0101 0101 85????????55??????????U
 0101 0110 86????????56??????????V
 0101 0111 87????????57??????????W
 0101 1000 88????????58??????????X
 0101 1001 89????????59??????????Y
 0101 1010 90????????5A??????????Z
 0101 1011 91????????5B??????????[
 0101 1100 92????????5C??????????\
 0101 1101 93????????5D??????????]
 0101 1110 94????????5E??????????^
 0101 1111 95????????5F??????????_
 0110 0000 96????????60??????????`
 0110 0001 97????????61??????????a0110 0010 98????????62??????????b
 0110 0011 99????????63??????????c
 0110 0100 100?????64??????????d
 0110 0101 101?????65??????????e
 0110 0110 102?????66??????????f
 0110 0111 103?????67??????????g
 0110 1000 104?????68??????????h
 0110 1001 105?????69??????????i
 0110 1010 106?????6A??????????j
 0110 1011 107?????6B??????????k
 0110 1100 108?????6C??????????l
 0110 1101 109?????6D??????????m
 0110 1110 110?????6E??????????n
 0110 1111 111?????6F??????????o
 0111 0000 112?????70??????????p
 0111 0001 113?????71??????????q
 0111 0010 114?????72??????????r
 0111 0011 115?????73??????????s
 0111 0100 116?????74??????????t
 0111 0101 117?????75??????????u
 0111 0110 118?????76??????????v
 0111 0111 119?????77??????????w
 0111 1000 120?????78??????????x
 0111 1001 121?????79??????????y
 0111 1010 122?????7A??????????z
 0111 1011 123?????7B??????????{
 0111 1100 124?????7C??????????|
 0111 1101 125?????7D??????????}
 0111 1110 126?????7E??????????~?
 0111 1111 127??????7F??????????DEL (delete)????????????????????????????????刪除另外還有128-255的ASCII字符
 字符集簡史
 6000年前 象形文字
 3000年前 字母表
 1838年到1854年 Samuel F. B. Morse發明了電報,字母表中的每個字符對應于一系列短的和長的脈沖
 1821年到1824年 Louis Braille發明盲文,6位代碼,它把字符、常用字母組合、常用單字和標點進行編碼。
 一個特殊的escape代碼表示后續的字符代碼應解釋為大寫。一個特殊的shift代碼允許后續代碼被解釋為數字。
 1931年 CCITT標準化Telex代碼,包括Baudot #2的代碼,都是包括字符和數字的5位代碼。
 1890年 早期計算機的字符碼是從Hollerith卡片,6位字符碼系統BCDIC(Binary-Coded Decimal Interchange Code:二進制編碼十進制交換編碼)
 60年代 擴展為8位EBCDIC,IBM大型主機的標準
 1967年 美國信息交換標準碼(ASCII:American Standard Code for Information Interchange)
 ?????????在字符長度是6位、7位還是8位的問題上產生了很大的爭議。從可靠性的觀點來看不應使用替換字符,
 ?????????因此ASCII不能是6位編碼,但由于費用的原因也排除了8位版本的方案(當時每位的儲存空間成本仍很昂貴)。
 ?????????這樣,最終的字符碼就有26個小寫字母、26個大寫字母、10個數字、32個符號、33個句柄和一個空格,總共128個字符碼。
 ?????????ASCII現在記錄在ANSI X3.4-1986字符集-用于信息交換的7位美國國家標準碼(7-Bit ASCII:7-Bit American National
 ?????????Standard Code for Information Interchange),由美國國家標準協會(American National Standards Institute)發布。
 ASCII國際問題
 ASCII是美國標準,所以它不能良好滿足其它講英語國家的需要。例如英國的英鎊符號(£)在哪里?拉丁語字母表重音符號,使用斯拉夫字母表的希臘語、希伯來語、阿拉伯語和俄語。
 漢字系統的中國象形漢字,日本和朝鮮。
 1967年,國際標準化組織(ISO:International Standards Organization)推薦一個ASCII的變種,代碼0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D“為國家使用保留”, 而代碼0x5E、0x60和0x7E標為“當國內要求的特殊字符需要8、9或10個空間位置時,可用于其它圖形符號”。這顯然不是一個最佳的國際解決方 案,因為這并不能保證一致性。但這卻顯示了人們如何想盡辦法為不同的語言來編碼的。 擴展ASCII1981年 IBM PC ROM256個字符的字符集,即IBM擴展字符集。
 1985年11 Windows字符集被稱作“ANSI字符集”,遵循了ANSI草案和ISO標準(ANSI/ISO 8859-1-1987,簡“Latin 1”。
 ANSI字符集的最初版本:1987年4月代碼頁437,字符的映像代碼,出現在MS-DOS 3.3
 雙字節字符集
 雙字節字符集(DBCS:double-byte character set),解決中國、日本和韓國的象形文字符和ASCII的某種兼容性。
 DBCS從256代碼開始,就像ASCII一樣。與任何行為良好的代碼頁一樣,最初的128個代碼是ASCII。
 然而,較高的128個代碼中的某些總是跟隨著第二個字節。
 這兩個字節一起(稱作首字節和跟隨字節)定義一個字符,通常是一個復雜的象形文字。
 鍵盤常用ASCII碼(十進制)
 ESC鍵 VK_ESCAPE (27)
 回車鍵: VK_RETURN (13)
 TAB鍵: VK_TAB (9)
 Caps Lock鍵: VK_CAPITAL (20)
 Shift鍵: VK_SHIFT (16)
 Ctrl鍵: VK_CONTROL (17)
 Alt鍵: VK_MENU (18)
 空格鍵: VK_SPACE (32)
 退格鍵: VK_BACK (8)
 左徽標鍵: VK_LWIN (91)
 右徽標鍵: VK_LWIN (92)
 鼠標右鍵快捷鍵:VK_APPS (93)
 Insert鍵: VK_INSERT (45)
 Home鍵: VK_HOME (36)
 Page Up: VK_PRIOR (33)
 PageDown: VK_NEXT (34)
 End鍵: VK_END (35)
 Delete鍵: VK_DELETE (46)
 方向鍵(←): VK_LEFT (37)
 方向鍵(↑): VK_UP (38)
 方向鍵(→): VK_RIGHT (39)
 方向鍵(↓): VK_DOWN (40)
 F1鍵: VK_F1 (112)
 F2鍵: VK_F2 (113)
 F3鍵: VK_F3 (114)
 F4鍵: VK_F4 (115)
 F5鍵: VK_F5 (116)
 F6鍵: VK_F6 (117)
 F7鍵: VK_F7 (118)
 F8鍵: VK_F8 (119)
 F9鍵: VK_F9 (120)
 F10鍵: VK_F10 (121)
 F11鍵: VK_F11 (122)
 F12鍵: VK_F12 (123)
 Num Lock鍵: VK_NUMLOCK (144)
 小鍵盤0: VK_NUMPAD0 (96)
 小鍵盤1: VK_NUMPAD1 (97)
 小鍵盤2: VK_NUMPAD2 (98)
 小鍵盤3: VK_NUMPAD3 (99)
 小鍵盤4: VK_NUMPAD4 (100)
 小鍵盤5: VK_NUMPAD5 (101)
 小鍵盤6: VK_NUMPAD6 (102)
 小鍵盤7: VK_NUMPAD7 (103)
 小鍵盤8: VK_NUMPAD8 (104)
 小鍵盤9: VK_NUMPAD9 (105)
 小鍵盤.: VK_DECIMAL (110)
 小鍵盤*: VK_MULTIPLY (106)
 小鍵盤+: VK_MULTIPLY (107)
 小鍵盤-: VK_SUBTRACT (109)
 小鍵盤/: VK_DIVIDE (111)
 Pause Break鍵: VK_PAUSE (19)
 Scroll Lock鍵: VK_SCROLL (145)
 |