HTML转义字符⼤全
为什么要⽤转义字符串?
HTML中<,>,&等有特殊含义(<,>,⽤于链接签,&⽤于转义),不能直接使⽤。这些符号是不显⽰在我们最终看到的⽹页⾥的,那如果我们希望在⽹页中显⽰这些符号,该怎么办呢?
这就要说到HTML转义字符串(Escape Sequence)了。
(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符串的原因有两个:第⼀个原因是像“<”和“>”这类符号已经⽤来表⽰HTML标签,因此就不能直接当作⽂本中的符号来使⽤。为了在HTML⽂档中使⽤这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输⼊转义字符串时,要严格遵守字母⼤⼩写的规则。第⼆个原因是,有些字符在ASCII 字符集中没有定义,因此需要使⽤转义字符串来表⽰。
转义字符串的组成
转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第⼀部分是⼀个&符号,英⽂叫ampersand;第⼆部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是⼀个分号。
⽐如,要显⽰⼩于号(<),就可以写 < 或者 < 。
⽤实体(Entity)名字的好处是⽐较好理解,⼀看lt,⼤概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都⽀持最新的Entity名字。⽽实体(Entity)编号,各种浏览器都能处理。
提⽰:实体名称(Entity)是区分⼤⼩写的。
备注:同⼀个符号,可以⽤“实体名称”和“实体编号”两种⽅式引⽤,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,⽽“实体编号”则没有这种担忧,但它实在不⽅便记忆。
如何显⽰空格?
通常情况下,HTML会⾃动截去多余的空格。不管你加多少空格,都被看做⼀个空格。⽐如你在两个字之间加了10个空格,HTML会截去9个空格,只保留⼀个。为了在⽹页中增加空格,你可以使⽤ ;表⽰空格。
HTML特殊转义字符列表
最常⽤的字符实体
Character Entities
显⽰说明实体名称实体编号
半⽅⼤的空⽩
全⽅⼤的空⽩
不断⾏的空⽩格
<⼩于<<
>⼤于>>
&&符号&&
"双引号""
©版权©©
®已注册商标®®
™商标(美国)™™
×乘号××
÷除号÷÷
ISO 8859-1 (Latin-1)字符集
HTML 4.01 ⽀持 ISO 8859-1 (Latin-1) 字符集。
备注:为了⽅便起见,以下表格中,“实体名称”简称为“名称”,“实体编号”简称为“编号”
显⽰名称编号
显
⽰
名称编号
显
⽰
名称编号
显
⽰
名称编号
显
⽰
名称编号
¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨©©©
ªªª«««¬¬¬®®®
¯¯¯°°°±±±²²²³³³
´´´µµµ¶¶¶···¸¸¸
¹¹¹ººº»»»¼¼¼½½½
¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂ
ÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇ
ÈÈÈÉÉÉÊÊÊËËËÌÌÌ
ÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑ
ÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ
×××ØØØÙÙÙÚÚÚÛÛÛ
ÜÜÜÝÝÝÞÞÞßßßààà
áááâââãããäääååå
æææçççèèèéééêêê
ëëëìììíííîîîïïï
ðððñññòòòóóóôôô
õõõööö÷÷÷øøøùùù
úúúûûûüüüýýýþþþpdf转html
ÿÿÿ
数学和希腊字母标志
symbols, mathematical symbols, and Greek letters
显⽰名称编号
显
⽰
名称编号
显
⽰
名称编号
显
⽰
名称编号
显
⽰
名称编号
ƒƒƒΑΑΑΒΒΒΓΓΓΔΔΔΕΕΕΖΖΖΗΗΗΘΘΘΙΙΙΚΚΚΛΛΛΜΜΜΝΝΝΞΞΞΟΟΟΠΠΠΡΡΡΣΣΣΤΤΤΥΥΥΦΦΦΧΧΧΨΨΨΩΩΩαααβββγγγδδδεεεζζζηηηθθθιιικκκλλλµμμνννξξξοοοπππρρρςςςσσστττυυυφφφχχχψψψωωω
ϑϑ?ϒϒ?ϖϖ•••………′′′″″″‾‾‾⁄⁄⁄℘℘℘ℑℑℑℜℜℜ™™™ℵℵℵ←←←↑↑↑→→→↓↓↓↔↔↔↵↵↵⇐⇐⇐⇑⇑⇑⇒⇒⇒⇓⇓⇓⇔⇔⇔∀∀∀∂∂∂∃∃∃∅∅∅∇∇∇∈∈∈∉∉∉∋∋∋∏∏∏∑∑∑−−−∗∗∗√√√∝∝∝∞∞∞∠∠∠∧∧∧∨∨∨∩∩∩∪∪∪∫∫∫∴∴∴∼∼∼∝≅≅≈≈≈≠≠≠≡≡≡≤≤≤≥≥≥⊂⊂⊂⊃⊃⊃⊄⊄⊄⊆⊆⊆
⊇⊇⊇⊕⊕⊕⊗⊗⊗⊥⊥⊥⋅⋅⋅?⌈⌈?⌉⌉
⌊⌊?⌋⌋?⟨〈?⟩〉◊◊◊♠♠♠♣♣♣♥♥♥♦♦♦
重要的国际标记
markup-significant and internationalization characters
显⽰名称编号
显
⽰
名称编号
显
⽰
名称编号
显
⽰
名称编号
显
⽰
名称编号
"""&&&<<<>>>ŒŒŒ
œœœŠŠŠšššŸŸŸˆˆˆ
˜˜˜
–––———
‘‘‘’’’‚‚‚“““”””
…
„„†††‡‡‡‰‰‰‹‹‹
›››€€€
JavaScript转义符
转义序列字符
\b退格
\f⾛纸换页
\n换⾏
\r回车
\t横向跳格 (Ctrl-I)
\'单引号
\"双引号
\\反斜杠
编程的时候要注意特殊字符的问题,很多运⾏时出现的问题都是因为特殊字符的出现⽽引起的。
注意,由于反斜杠本⾝⽤作转义符,因此不能直接在脚本中键⼊⼀个反斜杠。如果要产⽣⼀个反斜杠,必须⼀起键⼊两个反斜杠 (\\)。
编码转换(to Unicode)
(程序代码来源于⽹络)
Js版
<script>
test = "你好abc"
str = ""
for( i=0; i<test.length; i++ )
{
temp = test.charCodeAt(i).toString(16);
str += "\\u"+ new Array(5-String(temp).length).join("0") +temp;
}
document.write (str)
</script>
vbs版
Function Unicode(str1)
Dim str,temp
str = ""
For i=1 to len(str1)
temp = Hex(AscW(Mid(str1,i,1)))
If len(temp) < 5 Then temp = right("0000" & temp, 4)
str = str & "\u" & temp
Next
Unicode = str
End Function
Function htmlentities(str)
For i = 1 to Len(str)
char = mid(str, i, 1)
If Ascw(char) > 128 then
htmlentities = htmlentities & "&#" & Ascw(char) & ";"
Else
htmlentities = htmlentities & char
End if
Next
End Function
coldfusion版
function nochaoscode(str)
{
var new_str = “”;
for(i=1; i lte len(str);i=i+1){
if(asc(mid(str,i,1)) lt 128){
new_str = new_str & mid(str,i,1);
}else{
new_str = new_str & “&##” & asc(mid(str,i,1));
}
}
return new_str;
}
附:
在php中我们可以⽤mbstring的mb_convert_encoding函数实现这个正向及反向的转化。如:
mb_convert_encoding ("你好", "HTML-ENTITIES", "gb2312"); //输出:你好 mb_convert_encoding ("你好", "gb2312", "HTML-ENTITIES"); //输出:你好
如果需要对整个页⾯转化,则只需要在php⽂件的头部加上这三⾏代码:
mb_internal_encoding("gb2312"); // 这⾥的gb2312是你⽹站原来的编码
mb_http_output("HTML-ENTITIES");
ob_start('mb_output_handler');
发布评论