第三步:對動態輸出內容編碼
每一個ISO-8859-1字符集中的字符都可以編碼為一個數值,完整的對應關系請見下面的幾個表:
數 值
編碼表示法
含 義
表現形式
�-
-
Unused
-
-
HorizontalTab
space
-
Linefeed
space
-
-
Unused
-
-
Space
space
!
-
Exclamationmark
!
"
"
Quotationmark
"
#
-
Numbersign
#
$
-
Dollarsign
$
%
-
Percentsign
%
&
&
Ampersand
&
'
-
Apostrophe
'
(
-
Leftparenthesis
(
)
-
Rightparenthesis
)
*
-
Asterisk
*
+
-
Plussign
+
,
-
Comma
,
-
-
Hyphen
-
.
-
Period(fullstop)
.
/
-
Solidus(slash)
/
0-9
-
Digits(0-9)
0-9
:
-
Colon
:
;
-
Semi-colon
;
<
<
Lessthan
<
=
-
Equalssign
=
>
>
Greaterthan
>
?
-
Questionmark
?
@
-
Commercialat
@
A-Z
-
UppercaseA-Z
A-Z
[
-
Leftsquarebracket
[
\
-
Reversesolidus(backslash)
\
]
-
Rightsquarebracket
]
^
-
Caret
^
_
-
Horizontalbar
_
`
-
Acuteaccent
`
a-z
-
Lowercasea-z
a-z
{
-
Leftcurlybrace
{
|
-
Verticalbar
|
}
-
Rightcurlybrace
}
~
-
Tilde
~
-?
-
Unused
-
Non-breakingspace
?
?
Invertedexclamation
?
¢
¢
Centsign
¢
£
£
Poundsterlingsign
£
¤
¤
Generalcurrencysign
¤
¥
¥
Yensign
¥
&brVBar;
|
Brokenverticalbar
|
§
§
Sectionsign
§
¨
¨
UMLaut(dierisis)
¨
?
?
Copyright
?
a
a
Feminineordinal
a
?
?
Leftanglequote,guillemotleft
?
?
?
Notsign
?
Softhyphen
?
?
ReGISteredtrademark
?
ˉ
ˉ
Macronaccent
ˉ
°
°
Degreesign
°
±
±
Plusorminus
±
2
2
Superscripttwo
2
3
3
Superscriptthree
3
′
′
Acuteaccent
′
μ
μ
Microsign
μ
?
?
Paragraphsign
?
·
·
Middledot
·
?
?
Cedilla
?
1
1
Superscriptone
1
o
o
Masculineordinal
o
?
?
Rightanglequote,guillemotright
?
?
?
Fraction(onequarter)
?
?
?
Fraction(onehalf)
?
?
?
Fraction(threequarters)
?
?
?
Invertedquestionmark
?
à
à
CapitalA,graveaccent
à
á
á
CapitalA,acuteaccent
á
?
?
CapitalA,circumflexaccent
?
?
?
CapitalA,tilde
?
?
?
CapitalA,umlaut(dierisis)
?
?
?
CapitalA,ring
?
?
?
CapitalAEdipthong(ligature)
?
?
?
CapitalC,cedilla
?
è
è
CapitalE,graveaccent
è
é
é
CapitaE,acuteaccent
é
ê
ê
CapitalE,circumflexaccent
ê
&EUML;
?
CapitalE,umlaut(dierisis)
?
ì
ì
CapitalI,graveaccent
ì
í
í
CapitalI,acuteaccent
í
?
?
CapitalI,circumflexaccent
?
?
?
CapitalI,umlaut(dierisis)
?
D
D
CapitalEth,Icelandic
D
?
?
CapitalN,tilde
?
ò
ò
CapitalO,graveaccent
ò
ó
ó
CapitalO,acuteaccent
ó
?
?
CapitalO,circumflexaccent
?
?
?
CapitalO,tilde
?
?
?
CapitalO,umlaut(dierisis)
?
×
×
Multiplysign
×
?
?
CapitalO,slash
?
ù
ù
CapitalU,graveaccent
ù
ú
ú
CapitalU,acuteaccent
ú
?
?
CapitalU,circumflexaccent
?
ü
ü
CapitalU,umlaut(dierisis)
ü
Y
Y
CapitalY,acuteaccent
Y
T
T
CapitalThorn,Icelandic
T
?
?
Smallsharps,German(szligature)
?
à
à
Smalla,graveaccent
à
á
á
Smalla,acuteaccent
á
a
a
Smalla,circumflexaccent
a
?
?
Smalla,tilde
?
&aUML;
?
Smalla,umlaut(dierisis)
?
?
?
Smalla,ring
?
?
?
Smallaedipthong(ligature)
?
?
?
Smallc,cedilla
?
è
è
Smalle,graveaccent
è
é
é
Smalle,acuteaccent
é
ê
ê
Smalle,circumflexaccent
ê
?
?
Smalle,umlaut(dierisis)
?
ì
ì
Smalli,graveaccent
ì
í
í
Smalli,acuteaccent
í
?
?
Smalli,circumflexaccent
?
?
?
Smalli,umlaut(dierisis)
?
e
e
Smalleth,Icelandic
e
?
?
Smalln,tilde
?
ò
ò
Smallo,graveaccent
òò
ó
ó
Smallo,acuteaccent
ó
?
?
Smallo,circumflexaccent
?
?
?
Smallo,tilde
?
?
?
Smallo,umlaut(dierisis)
?
÷
÷
Divisionsign
÷
?
?
Smallo,slash
?
ù
ù
Smallu,graveaccent
ù
ú
ú
Smallu,acuteaccent
ú
?
?
Smallu,circumflexaccent
?
ü
ü
Smallu,umlaut(dierisis)
ü
y
y
Smally,acuteaccent
y
t
t
Smallthorn,Icelandic
t
?
?
Smally,umlaut(dierisis)
?
根據上表,我們來看2個應用實例:
? 2000 Some Co., Inc.:用?表示版權標識信息。
? 2000 Some Co., Inc.:用?同樣標識版權標識信息。
對不被信任的數據進行編碼要優于過濾不被信任的數據。在客戶端瀏覽器需要顯示一些特殊字符的情況下,這種處理方式會恢復特殊字符的廬山真面目。當然,對所有不被信任的數據進行編碼,是個相當耗費資源的工作。根據需要,Web開發者可以在編碼和過濾2種方法中進行權衡,選擇一種或者混合使用。
該文章轉載自1024k:http://www.1024k.cn/web/2007/200701/15407.html