ASSIC碼對照表

編碼對應字符:javascript

:\u2714
\u2718php

<script type="text/javascript">
var aaa = "\u2718";
document.write(aaa);
</script>

 

測試ASCII碼的方法:
在記事本中,按住ALT鍵,同時用小鍵盤輸入十進制的ASCII碼,而後鬆手,就能夠看到效果了!html

 

 

ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符
0 NUT 32 (space) 64 @ 96
1 SOH 33 65 A 97 a
2 STX 34 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DCI 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 TB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 \ 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 ~
31 US 63 ? 95 127 DEL

 

NUL VT 垂直製表 SYN 空轉同步
SOH 標題開始 FF   走紙控制 ETB 信息組傳送結束
STX 正文開始 CR   回車 CAN 做廢
ETX 正文結束 SO   移位輸出 EM   紙盡
EOY 傳輸結束 SI    移位輸入 SUB 換置
ENQ 詢問字符 DLE 空格 ESC 換碼
ACK 認可 DC1 設備控制1 FS   文字分隔符
BEL 報警 DC2 設備控制2 GS   組分隔符
BS   退一格 DC3 設備控制3 RS   記錄分隔符
HT   橫向列表 DC4 設備控制4 US   單元分隔符
LF   換行 NAK 否認 DEL 刪除

 

 

鍵盤經常使用ASCII碼
ESC鍵 VK_ESCAPE (27)
回車鍵: VK_RETURN (13)
TAB鍵: VK_TAB (9)
Caps Lock鍵: VK_CAPITAL (20)
Shift鍵: VK_SHIFT ($10)
Ctrl鍵: VK_CONTROL (17)
Alt鍵: VK_MENU (18)
空格鍵: VK_SPACE ($20/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_NUMPAD0 (97)
小鍵盤2: VK_NUMPAD0 (98)
小鍵盤3: VK_NUMPAD0 (99)
小鍵盤4: VK_NUMPAD0 (100)
小鍵盤5: VK_NUMPAD0 (101)
小鍵盤6: VK_NUMPAD0 (102)
小鍵盤7: VK_NUMPAD0 (103)
小鍵盤8: VK_NUMPAD0 (104)
小鍵盤9: VK_NUMPAD0 (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)

 

ASCII碼中:
第0~32號及第127號是控制字符,常見的控制符如:
007 = 07 = U+0007 : BELL                                   轉義符:\a     響鈴 008 = 08 = U+0008 : BACKSPACE                                                         轉義符:\b     退格鍵 009 = 09 = U+0009 : HORIZONTAL TABULATION                                           轉義符:\t      Tab鍵 010 = 0A = U+000A : LINE FEED                                                               轉義符:\n     換行符 011 = 0B = U+000B : VERTICAL TABULATION                                               轉義符:\v     垂直 Tab 符 012 = 0C = U+000C : FORM FEED                                                              轉義符:\f      換頁符 013 = 0D = U+000D : CARRIAGE RETURN                                                        轉義符:\r      回車鍵 027 = 1B = U+001B : ESCAPE                                                                轉義符:\e     Esc 鍵java

第33~126號是字符,其中第48~57號爲0~9十個阿拉伯數字;65~90號爲26個大寫英文字母,97~122號爲26個小寫英文字母,其他的是一些標點符號、運算符號等。web

PHP中的應用:
ord():返回字符串第一個字符的 ASCII 值。
chr():從指定的 ASCII 值返回字符。數組

PHP字符編碼ASCII 、GB23十二、GBK、UTF-8解釋:
詳細解釋參考:http://bbs.php100.com/read.php?tid=295220測試

中文編碼範圍E0~EF (UTF-8)
                 80~FF (GBK)ui

ASCII碼錶及擴展ASCII碼錶詳解:編碼

ASCII碼錶能夠當作由三部分組成: 第一部分由00H到1FH共32個,通常用來通信或做爲控制之用,有些能夠顯示在屏幕上,有些則不能顯示,但能看到其效果(如換行、退格).以下表:
spa

第二部分是由20H到7FH共96個,這95個字符是用來表示阿拉伯數字、英文字母大小寫和下劃線、括號等符號,均可以顯示在屏幕上.以下表:

ASCII 碼 

字符

  

ASCII 碼 

字符

  

ASCII 碼 

字符

  

ASCII 碼 

字符

十進制

十六進制

十進制

十六進制

十進制

十六進制

十進制

十六進制

032 

20 

  

  

056 

38 

  

080 

50 

  

104 

68 

033 

21 

  

057 

39 

  

081 

51 

  

105 

69 

034 

22 

  

058 

3A 

  

082 

52 

  

106 

6A 

035 

23 

  

059 

3B 

  

083 

53 

  

107 

6B 

036 

24 

  

060 

3C 

  

084 

54 

  

108 

6C 

037 

25 

  

061 

3D 

  

085 

55 

  

109 

6D 

038 

26 

  

062 

3E 

  

086 

56 

  

110 

6E 

039 

27 

  

063 

3F 

  

087 

57 

  

111 

6F 

040 

28 

  

064 

40 

  

088 

58 

  

112 

70 

041 

29 

  

065 

41 

  

089 

59 

  

113 

71 

042 

2A 

  

066 

42 

  

090 

5A 

  

114 

72 

043 

2B 

  

067 

43 

  

091 

5B 

  

115 

73 

044 

2C 

  

068 

44 

  

092 

5C 

  

116 

74 

045 

2D 

  

069 

45 

  

093 

5D 

  

117 

75 

046 

2E 

  

070 

46 

  

094 

5E 

  

118 

76 

047 

2F 

  

071 

47 

  

095 

5F 

  

119 

77 

048 

30 

  

072 

48 

  

096 

60 

  

120 

78 

049 

31 

  

073 

49 

  

097 

61 

  

121 

79 

050 

32 

  

074 

4A 

  

098 

62 

  

122 

7A 

051 

33 

  

075 

4B 

  

099 

63 

  

123 

7B 

052 

34 

  

076 

4C 

  

100 

64 

  

124 

7C 

053 

35 

  

077 

4D 

  

101 

65 

  

125 

7D 

054 

36 

  

078 

4E 

  

102 

66 

  

126 

7E 

055 

37 

  

079 

4F 

  

103 

67 

  

127 

7F 

 

 

第三部分由80H到0FFH共128個字符,通常稱爲"擴充字符",這128個擴充字符是由IBM制定的,並不是標準的ASCII碼.這些字符是用來表示框線、音標和其它歐洲非英語系的字母.
 

 

由獲取漢字首字母引發的gb2312編碼表的思考

GB2312 字符集和編碼說明(碼錶見http://www.cnblogs.com/thinksasa/p/3956458.html)

(1)GB2312 字符集
  GB2312 是漢字字符集和編碼的代號,中文全稱爲「信息交換用漢字編碼字符集」,由中華人民共和國國家標準總局發佈,一九八一年五月一日實施。GB 是「國標」 二字的漢語拼音縮寫。

(2)GB2312 字符集 (character set) 只收錄簡化字漢字,以及通常經常使用字母和符號,主要通行於中國大陸地區和新加坡等地。

(3)GB2312 共收錄有 7445 個字符,其中簡化漢字 6763 個,字母和符號 682 個。

(4)GB2312 將所收錄的字符分爲 94 個區,編號爲 01 區至 94 區;每一個區收錄 94 個字符,編號爲 01 位至 94 位。GB2312 的每個字符都由與其惟一對應的區號和位號所肯定。例如:漢字「啊」,編號爲 16 區 01 位。

(5)GB2312 字符集的區位分佈表:
區號    字數    字符類別 
    01      94    通常符號 
    02      72    順序號碼 
    03      94    拉丁字母 
    04      83    日文假名 
    05      86    Katakana 
    06      48    希臘字母 
    07      66    俄文字母 
    08      63    漢語拼音符號 
    09      76    圖形符號 
 10-15            備用區 
 16-55    3755    一級漢字,以拼音爲序 
 56-87    3008    二級漢字,以筆劃爲序 
 88-94            備用區   

GB2312 編碼

  舉例來講,「啊」字是GB2312之中的第一個漢字,它的區位碼就是1601。字節編碼,一般採用EUC儲存方法,以便兼容於ASCII。每一個漢字及符號以兩個字節來表示 。第一個字節稱爲「高位字節」,第二個字節稱爲「低位字節」。 「高位字節」使用了0xA1-0xF7(把01-87區的區號加上0xA0),「低位字節」使用了0xA1-0xFE(把01-94加上0xA0)。例如 「啊」字在大多數程序中,會以0xB0A1儲存(與區位碼對比:0xB0=0xA0+16,0xA1=0xA0+1)。

  因此GB2312編碼中漢字區碼的十進制是從176到247,位碼是從161到255.之因此存儲了6763小於72(一級漢字和二級漢字所佔的區)*94(每一個區有94個漢字)=6768,是由於在區碼爲215,位碼爲250-254之間共五個編碼沒有漢字編碼,因此6768-5=6763個

GB2312 與 Unicode 的關係

  GB2312 字符集是 Unicode 字符集的一個子集。這也就是說,GB2312 所收錄的每個字符都收錄在 Unicode 之中。可是 GB2312 編碼和 Unicode 編碼確沒有什麼相同之處。同一個漢字,它的 GB2312 編碼和 Unicode 編碼確絕不相同。例如:漢字「啊」,它的 GB2312 編碼爲 0xB0A1,可是它的Unicode 編碼爲 0x554A。

舉例:

高位:B0=A0+16(區碼),低位:A1=A0+1(位碼)
因此編碼爲B0A1,
計算的十進制值:176(B0的十進制值)*256(高八位)+161(A1的十進制值)=45217

 

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<?php  function getfirstchar($s0){    
    $fchar = ord($s0{0}); 
    if($fchar >= ord("A") and $fchar <= ord("z") )return strtoupper($s0{0}); 
    $s1 = iconv("UTF-8","gb2312", $s0); 
    $s2 = iconv("gb2312","UTF-8", $s1); 
    if($s2 == $s0){$s = $s1;}else{$s = $s0;} 
    $asc = ord($s{0}) * 256 + ord($s{1}) - 65536; 

    if($asc >= -20319 and $asc <= -20284) return "A"; 
    if($asc >= -20283 and $asc <= -19776) return "B"; 
    if($asc >= -19775 and $asc <= -19219) return "C"; 
    if($asc >= -19218 and $asc <= -18711) return "D"; 
    if($asc >= -18710 and $asc <= -18527) return "E"; 
    if($asc >= -18526 and $asc <= -18240) return "F"; 
    if($asc >= -18239 and $asc <= -17760) return "G";
    if($asc >= -17759 and $asc <= -17248) return "H";
    if($asc >= -17247 and $asc <= -17418) return "I"; 
    if($asc >= -17417 and $asc <= -16475) return "J"; 
    if($asc >= -16474 and $asc <= -16213) return "K"; 
    if($asc >= -16212 and $asc <= -15641) return "L"; 
    if($asc >= -15640 and $asc <= -15166) return "M"; 
    if($asc >= -15165 and $asc <= -14923) return "N"; 
    if($asc >= -14922 and $asc <= -14915) return "O"; 
    if($asc >= -14914 and $asc <= -14631) return "P"; 
    if($asc >= -14630 and $asc <= -14150) return "Q"; 
    if($asc >= -14149 and $asc <= -14091) return "R"; 
    if($asc >= -14090 and $asc <= -13319) return "S"; 
    if($asc >= -13318 and $asc <= -12839) return "T"; 
    if($asc >= -12838 and $asc <= -12557) return "W"; 
    if($asc >= -12556 and $asc <= -11848) return "X"; 
    if($asc >= -11847 and $asc <= -11056) return "Y"; 
    if($asc >= -11055 and $asc <= -10247) return "Z"; 
    return null; 
} 
  
 function pinyin1($zh){ 
    $ret = ""; 
    $s1 = iconv("UTF-8","gb2312", $zh); 
    $s2 = iconv("gb2312","UTF-8", $s1); 
    if($s2 == $zh){$zh = $s1;} 
    for($i = 0; $i < strlen($zh); $i++){ 
        $s1 = substr($zh,$i,1); 
        $p = ord($s1); 
        if($p > 160){ 
            $s2 = substr($zh,$i++,2); 
            $ret .= getfirstchar($s2); 
        }else{ 
            $ret .= $s1; 
        } 
    } 
    return $ret; 
} echo "這是中文字符串<br/>"; echo pinyin1("啊"); 
  
?>

 

由此能夠得出結論:  將字符串轉使用GB2312編碼後,符合ASCII編碼的每一個字符都用1個字節 (byte) 表示,符合GB2312編碼的每一個字符都用2個字節 (byte) 表示。  如:「javaGB2312編碼」的字符串,「javaGB2312」的字符串長度爲:10,「編碼」的字符串的長度爲:4,因此字符串的長度爲:14。  當由字節數組轉換爲GB2312編碼的字符時,若是轉換的字節ASCII的值ord($str)是:0 到127,轉換就用ASCII碼錶示,則用1個字節表示一個字符;若是轉換的字節ASCII的值是:161到255,轉換就用GB2312編碼表示,則用2個字節表示一個字符。

相關文章
相關標籤/搜索