天天看點

HTML特殊字元編碼

HTML特殊字元編碼

在分析HTML位元組流或者源代碼的時候需要對HTML特殊字元編碼以及ASCII的知識有所了解才能避免跌入陷阱。一些所列舉的都是HTML的一些規範和ASCII碼的官方定義表。放到這裡檢視友善。

一、一些很重要的規範

下面這個圖檔是常用HTML中一些特殊字元的ASCII編碼或者表示方式。有些字元并沒有對應的ASCII碼。

常見字元的ASCII碼對照表

ASCII碼

鍵盤

ASCII 碼

27

ESC

32

SPACE

33

!

34

"

35

#

36

$

37

%

38

&

39

'

40

(

41

)

42

*

43

+

44

45

-

46

.

47

/

48

49

1

50

2

51

3

52

4

53

5

54

6

55

7

56

8

57

9

58

:

59

;

60

<

61

=

62

>

63

?

64

@

65

A

66

B

67

C

68

D

69

E

70

F

71

G

72

H

73

I

74

J

75

K

76

L

77

M

78

N

79

O

80

P

81

Q

82

R

83

S

84

T

85

U

86

V

87

W

88

X

89

Y

90

Z

91

[

92

\

93

]

94

^

95

_

96

`

97

a

98

b

99

c

100

d

101

e

102

f

103

g

104

h

105

i

106

j

107

k

108

l

109

m

110

n

111

o

112

p

113

q

114

r

115

s

116

t

117

u

118

v

119

w

120

x

121

y

122

z

123

{

124

|

125

}

126

~

以上圖表來自網際網路在w3c首頁上也能看到這裡我給個中文版頁面位址

<a href="http://www.w3school.com.cn/tags/html_ref_ascii.asp">http://www.w3school.com.cn/tags/html_ref_ascii.asp</a>

二、從數字角度認識ASCII碼

其實本人對ASCII的認識也很有限隻知道是美國定義的标準有1282的七次方長度是8bit一個位元組個碼。對應數字為0~127下面通過一個Java小程式來看看ACSII碼的秘密。

        public static void main(String[] args) { 

                for(int i=0;i&lt;128;i++){ 

                        System.out.println(i+"\t"+(char)i); 

                } 

        }

輸出結果

... ...

33 ! 

34 " 

35 # 

36 $ 

37 % 

38 &amp; 

39 ' 

40 ( 

41 ) 

42 * 

43 + 

44 , 

45 - 

46 . 

47 / 

48 0 

49 1 

50 2 

51 3 

52 4 

53 5 

54 6 

55 7 

56 8 

57 9 

58 : 

59 ; 

60 &lt; 

61 = 

62 &gt; 

63 ? 

64 @ 

65 A 

66 B 

67 C 

68 D 

69 E 

70 F 

71 G 

72 H 

73 I 

74 J 

75 K 

76 L 

77 M 

78 N 

79 O 

80 P 

81 Q 

82 R 

83 S 

84 T 

85 U 

86 V 

87 W 

88 X 

89 Y 

90 Z 

91 [ 

92 \ 

93 ] 

94 ^ 

95 _ 

96 ` 

97 a 

98 b 

99 c 

100 d 

101 e 

102 f 

103 g 

104 h 

105 i 

106 j 

107 k 

108 l 

109 m 

110 n 

111 o 

112 p 

113 q 

114 r 

115 s 

116 t 

117 u 

118 v 

119 w 

120 x 

121 y 

122 z 

123 { 

124 | 

125 } 

126 ~ 

127

很奇怪的是前面32個輸出行我複制不上複制出來總是一個0這個問題想過沒可以思考下。

三、深入認識ASCII碼

對于上面問題的解釋隻有深入了解了ASCII碼才知道為什麼了。下面這段文字來自網際網路。

數字代表計算機的語言。您的計算機如何使用字母來與程式和其他計算機進行通信一種方法是把字元集 字元集一組共享一些關系的字母、數字和其他字元。例如标準 ASCII 字元集包括字母、數字、符号群組成 ASCII 代碼方案的控制代碼。轉換為數字形式。

在 20 世紀 60 年代标準化的需要帶來了美國标準資訊交換碼 (ASCII) ASCII将英語中的字元表示為數字的代碼。為每個字元配置設定一個介于 0 到 127 之間的數字。大多數計算機都使用 ASCII 表示文本和在計算機之間傳輸資料。發音為 ask-kee。ASCII 表包含 128 個數字配置設定給了相應的字元 字元字母、數字、标點或符号。。ASCII 為計算機提供了一種存儲資料和與其他計算機及程式交換資料的方式。

ASCII 格式的文本不包含像黑體、斜體或字型等格式資訊。當您使用 Microsoft 記事本或把檔案作為純文字儲存在 Microsoft Office Word 中時就會使用 ASCII。您可能讀到過招聘廣告公司要求提供 ASCII 格式的履歷。這意味着無論您是用電子郵件、傳真或列印文本發送履歷公司希望您的履歷中不含任何特殊格式。大公司可能用光學字元識别 (OCR) OCR将文本圖像如掃描的文檔轉換為實際的文本字元。也稱為文本識别。 掃描軟體來掃描履歷和 ASCII 格式的文本。

在文檔中插入 ASCII 字元

注釋  該功能需要 Excel、FrontPage、InfoPath、OneNote、Outlook、PowerPoint、Project、Publisher、Word 或 Visio。

除了在鍵盤上鍵入字元外您也可以使用該符号的字元代碼作為鍵盤快捷鍵。例如要插入度數符号在按住 ALT 的同時在數字鍵盤上鍵入 0176。

要從下面的圖表中插入 ASCII 字元在按住 ALT 的同時鍵入等價的十進制數字。例如要插入度數符号在按住 ALT 的同時在數字鍵盤上鍵入 0176。

注釋  必須使用數字鍵盤來鍵入數字而不是鍵盤。如果您的鍵盤需要打開 Num Lock 鍵才能在數字鍵盤上鍵入數字請務必打開它。

ASCII 列印字元

數字 32–126 配置設定給了能在鍵盤上找到的字元當您檢視或列印文檔時就會出現。數字 127 代表 Delete 指令。

十進制  字元  十進制 字元 

32     space    80    P 

33     !        81    Q 

34     "        82    R 

35     #        83    S 

36     $        84    T 

37     %        85    U 

38     &amp;        86    V 

39     '        87    w 

40     (        88    X 

41     )        89    Y 

42     *        90    Z 

43     +        91    [ 

44     ,        92    \ 

45     -        93    ] 

46     .        94    ^ 

47     /        95    _ 

48     0        96    ` 

49     1        97    a 

50     2        98    b 

51     3        99    c 

52     4        100   d 

53     5        101   e 

54     6        102   f 

55     7        103   g  

56     8        104   h 

57     9        105   i 

58     :        106   j 

59     ;        107   k 

60     &lt;        108   l 

61     =        109   m 

62     &gt;        110   n 

63     ?        111   o 

64     @        112   p 

65     A        113   q 

66     B        114   r 

67     C        115   s 

68     D        116   t 

69     E        117   u 

70     F        118   v 

71     G        119   w 

72     H        120   x 

73     I        121   y 

74     J        122   z 

75     K        123   { 

76     L        124   | 

77     M        125   } 

78     N        126   ~ 

79     O        127   DEL 

擴充 ASCII 列印字元擴充的 ASCII 字元滿足了對更多字元的需求。擴充的 ASCII 包含 ASCII 中已有的 128 個字元數字 0–32 顯示在下圖中又增加了 128 個字元總共是 256 個。即使有了這些更多的字元許多語言還是包含無法壓縮到 256 個字元中的符号。是以出現了一些 ASCII 的變體來囊括地區性字元和符号。

例如許多軟體程式把 ASCII 表又稱作 ISO 8859-1用于北美、西歐、澳洲和非洲的語言。

擴充的 ASCII 列印字元表

十進制 字元  十進制  字元 

128     Ç      192    └ 

129     ü      193    ┴ 

130     é      194    ┬ 

131     â      195    ├ 

132     ä      196    ─ 

133     à      197    ┼ 

134     å      198    ╞ 

135     ç      199    ╟ 

136     ê      200    ╚ 

137     ë      201    ╔ 

138     è      202    ╩ 

139     ï      203    ╦ 

140     î      204    ╠ 

141     ì      205    ═ 

142     Ä      206    ╬ 

143     Å      207    ╧ 

144     É      208    ╨ 

145     æ      209    ╤ 

146     Æ      210    ╥ 

147     ô      211    ╙ 

148     ö      212    Ô 

149     ò      213    ╒ 

150     û      214    ╓ 

151     ù      215    ╫ 

152     ÿ      216    ╪ 

153     Ö      217    ┘ 

154     Ü      218    ┌ 

155     ¢      219    █ 

156     £      220    ▄ 

157     ¥      221    ▌ 

158     ₧      222    ▐ 

159     ƒ      223    ▀ 

160     á      224    α 

161     í      225    ß 

162     ó      226    Γ 

163     ú      227    π 

164     ñ      228    Σ 

165     Ñ      229    σ 

166     ª      230    µ 

167     º      231    τ 

168     ¿      232    Φ 

169     ⌐      233    Θ 

170     ¬      234    Ω 

171     ½      235    δ 

172     ¼      236    ∞ 

173     ¡      237    φ 

174     «      238    ε 

175     »      239    ∩ 

176     ░      240    ≡ 

177     ▒      241    ± 

178     ▓     242    ≥ 

179     │     243    ≤ 

180     ┤     244    ⌠ 

181     ╡     245    ⌡ 

182     ╢     246    ÷ 

183     ╖     247    ≈ 

184     ╕     248    ≈ 

185     ╣     249    ∙ 

186     ║     250    · 

187     ╗     251    √ 

188     ╝     252    ⁿ 

189     ╜     253    ² 

190     ╛     254    ■ 

191     ┐     255      

ASCII 非列印控制字元

ASCII 表上的數字 0–31 配置設定給了控制字元用于控制像列印機等一些外圍裝置。例如12 代表換頁/新頁功能。此指令訓示列印機跳到下一頁的開頭。

十進制   字元        十進制      字元 

0        空            16        資料鍊路轉意 

1        頭标開始      17        裝置控制 1 

2        正文開始      18        裝置控制 2 

3        正文結束      19        裝置控制 3 

4        傳輸結束      20        裝置控制 4 

5        查詢          21        反确認 

6        确認          22        同步空閑 

7        震鈴          23        傳輸塊結束 

8        backspace     24        取消 

9        水準制表符    25        媒體結束 

10       換行/新行     26        替換 

11       豎直制表符    27        轉意 

12       換頁/新頁     28        檔案分隔符 

13       回車          29        組分隔符 

14       移出          30        記錄分隔符 

15       移入          31        單元分隔符 

ASCII 之外

另一個更新的字元表稱為 Unicode UnicodeUnicode Consortium 開發的一種字元編碼标準。該标準采用多于一個位元組代表每一字元實作了使用單個字元集代表世界上幾乎所有書面語言。。 因為 Unicode 表大得多它可以表示 65,536 個字元而 ASCII 表隻能表示 128 個字元擴充的 ASCII 表也隻能表示 256 個字元。這一更大的容量使不同語言的大多數字元都能包含在同一個字元集中。

本文轉自 leizhimin 51CTO部落格原文連結http://blog.51cto.com/lavasoft/178269如需轉載請自行聯系原作者

繼續閱讀