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)是区分大小写的。
备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。
(普通的英文半角空格但不换行), 
(半个中文宽度), 
(全角空格) 
中文全角空格 (一个中文宽度)其实它就相当于一个空白的汉字。
半角的不断行的空白格(推荐使用) 
半角的空格 
全角的空格
详细的含义:
:这是我们使用最多的空格,也就是按下space键产生的空格。在HTML中,如果你用空格键产生此空格,空格是不会累加的(只算1个)。要使用html实体表示才可累加。该空格占据宽度受字体影响明显而强烈。在inline-block布局中会搞些小破坏,在两端对齐布局中又是不可少的元素。
 
:此空格有个相当稳健的特性,就是其占据的宽度正好是1/2个中文宽度,而且基本上不受字体影响。
 
:此空格也有个相当稳健的特性,就是其占据的宽度正好是1个中文宽度,而且基本上不受字体影响。
对于** 
和 
**在一些中文排版对齐方面可以使用,如下html代码:
<ul>
<li class="li">姓  名:<input type="text" /></li>
<li class="li">手 机 号:<input type="text" /></li>
<li class="li">电子邮箱:<input type="text" /></li>
</ul>
值得注意的是:上面的空白字符中文对齐方法在IE6下不能完全兼容。(现在谁还在兼容IE6呢,所以还是非常有用的。)
HTML(HyperText Markup Language)超文本标记语言是一种用于创建网页的标准标记语言,不仅可以在网页上显示文字,还可以显示图片、视频等多媒体信息。
HTML转义字符英文全称是HTML Character Entities,也叫字符实体,由于HTML本身对于一些符号己经定义了作用,如<
小于号表示HTML标签的开始,>
大于号表示HTML标签的结束,还有空格、&等符号在HTML中有特殊含义,如果直接使用会被当成HTML的一个标签,无法正常显示在网页上。
比如常用的<div>
标签,直接使用是什么也不会显示的,因为它表示一个HTML标签,如果想要在网页上显示<div>
,就要用一些特殊的编码符号代替< >
这些符号,HTML解释器遇到这些编码就会显示其所对应的符号,这些特殊编码就是HTML转义字符
(由于直接翻译叫字符实体,并不符合我们的使用习惯,所以本文统一称为转义字符)。
比如,要在网页上显示小于号<
就在HTML代码中使用<
或<
除了已经预定义的HTML符号,还有以下这些情况使用转义字符:
- 键盘不支持输入的符号,如版权符号
©
就要用©
来代替方便输入; - 编辑器不支持特殊符号的输入;
- 需要在页面中显示多个空格,要使用空格的转义字符
。
简而言之,**HTML转义字符(字符实体)**是用特殊编码表示超文本标记语言HTML中的一些特殊符号,在HTML网页上使用的各种符号,常见的如空格,大于、小于号,引号等。
注:转义编号的数字可以使用十六进制,只需在#号后加x,如
<
十六进制表示为<
字符 | 转义名称 | 转义编号 | 描述 |
|   | 空格 | |
< | < | < | 小于号 |
> | > | > | 大于号 |
& | & | & | 和号 |
© | © | © | 版权 |
® | ® | ® | 注册 |
¥ | ¥ | ¥ | 人民币 |
™ | ™ | ™ | 商标 |
÷ | ÷ | ÷ | 除号 |
× | × | õ | 乘号 |
" | " | " | 双引号 |
' | ' | ' | 单引号 |
  |   | 半角空格 | |
  |   | 全角空格 | |
· | · | · | 点号 |
° | ° | ° | 度数 |
转义字符由三个部分组成:
一个和号&
开始,中间一个转义名称
或者#
和一个转义编号
,以及末尾一个分号 ;
。
- 名称和编号只是表示方式不同,在网页中的显示效果是一样的,转义名称一般由英文单词或英文缩写组成,方便记忆,比如 < 的转义字符是 < 实际上是 less than 的缩写。
- 名称和编号可以理解为域名和IP地址的概念,转义名称和域名都是为了方便人类记忆使用的,对于计算机来说最终都是要转换成数字才可以处理。
- 另外转义名称是区分大小写的,也就是说在使用转义名称时大小写敏感,不能随意使用大小写。
- 转义名称可能存在部分浏览器不兼容而无法显示的问题,而转义编号不存在这种问题。
空格是一个特殊的字符,在HTML文件中,多个连续的空格被当做一个空格处理(<pre>...</pre>
之间的内容除外),标签外的空格也不会被显示,所以如果想要段落前空两格,直接输入四个空格是达不到效果的,只会显示成一个空格。
这时候有三种方案:
- 直接输入四个空格转义字符
- 先输入一个空格再输入一个转义字符,重复如此
- 第一个字符输入一个空格,其作三个使用转义字符,或前三个转义字符加最后一个空格
字符 | 转义名称 | 转义编号 | 描述 |
← | ← | ← | 左箭头 |
↑ | ↑ | ↑ | 上箭头 |
→ | → | → | 右箭头 |
↓ | ↓ | ↓ | 下箭头 |
↔ | ↔ | ↔ | 左右箭头 |
↵ | ↵ | ↵ | 下左箭头 |
⇐ | ⇐ | ⇐ | 左双箭头 |
⇑ | ⇑ | ⇑ | 上双箭头 |
⇒ | ⇒ | ⇒ | 右双箭头 |
⇓ | ⇓ | ⇓ | 下双箭头 |
⇔ | ⇔ | ⇔ | 左右双箭头 |
字符 | 转义名称 | 转义编号 | 描述 |
√ | √ | √ | 开方 |
< | < | < | 小于 |
> | > | > | 大于 |
≤ | ≤ | ≤ | 小于等于 |
≥ | ≥ | ≥ | 大于等于 |
± | ± | ± | 加减 |
÷ | ÷ | ÷ | 除法 |
× | × | × | 乘法 |
∫ | ∫ | ∫ | 积分 |
ƒ | ƒ | ƒ | 函数 |
∑ | ∑ | ∐ | 求和 |
≈ | &spymp; | ≈ | 约等于 |
≠ | ≠ | ≠ | 不等于 |
² | ² | ² | 平方 |
³ | ³ | ³ | 立方 |
∞ | ∞ | ∞ | 无穷 |
字符 | 转义名称 | 转义编号 | 描述 |
◊ | ◊ | ▢ | 菱形 |
♠ | ♠ | ♠ | 桃形 |
♥ | ♥ | ♥ | 心形 |
♣ | ♣ | ♣ | 梅花 |
♦ | ♦ | ♦ | 尖方块 |
□ | □ | 方框 | |
▢ | ▢ | 圆角方框 | |
△ | △ | 三角形 | |
☂ | ☂ | 雨伞 | |
☆ | ☆ | 五角星 |
字符 | 转义名称 | 转义编号 | 描述 |
α | α | α | Alpha |
β | β | β | Beta |
γ | γ | γ | Gamma |
δ | δ | δ | Delta |
ε | ε | ε | Epsilon |
ζ | ζ | ζ | Zeta |
η | η | η | Eta |
θ | θ | θ | Theta |
ι | ι | ι | Iota |
κ | κ | κ | Kappa |
λ | λ | λ | Lambada |
μ | μ | μ | Mu |
ν | ν | ν | Nu |
ξ | ξ | ξ | Xi |
ο | ο | ο | Omicron |
π | π | π | Pi |
ρ | ρ | ρ | Rho |
ς | ς | ς | |
σ | σ | σ | Sigma |
τ | τ | τ | Tau |
υ | υ | υ | Upsilon |
φ | φ | φ | Phi |
χ | χ | χ | Chi |
ψ | ψ | ψ | Psi |
ω | ω | ω | Omega |
备注:为了方便起见,以下表格中,“实体名称”简称为“名称”,“实体编号”简称为“编号”
字符 | 名称 | 编号 | 字符 | 名称 | 编号 |
& | & | & | é | é | é |
< | < | < | ê | ê | ê |
> | > | > | ë | ë | ë |
|   | ì | ì | ì | |
¡ | ¡ | ¡ | í | í | í |
¢ | ¢ | ¢ | î | î | î |
£ | £ | £ | ï | ï | ï |
¤ | ¤ | ¤ | ð | ð | ð |
¥ | ¥ | ¥ | ñ | ñ | ñ |
¦ | ¦ | ¦ | ò | ò | ò |
§ | § | § | ó | ó | ó |
¨ | ¨ | ¨ | ô | ô | ô |
© | © | © | õ | õ | õ |
ª | ª | ª | ö | ö | ö |
« | « | « | ÷ | ÷ | ÷ |
¬ | ¬ | ¬ | ø | ø | ø |
| ­ | ­ | ù | ù | ù |
® | ® | ® | ú | ú | ú |
¯ | ¯ | ¯ | û | û | û |
° | ° | ° | ü | ü | ü |
± | ± | ± | ý | ý | ý |
² | ² | ² | þ | þ | þ |
³ | ³ | ³ | ÿ | ÿ | ÿ |
´ | ´ | ´ | ƒ | ƒ | ƒ |
µ | µ | µ | Α | Α | Α |
¶ | ¶ | ¶ | Β | Β | Β |
· | · | · | Γ | Γ | Γ |
¸ | ¸ | ¸ | Δ | Δ | Δ |
¹ | ¹ | ¹ | Ε | Ε | Ε |
º | º | º | Ζ | Ζ | Ζ |
» | » | » | Η | Η | Η |
¼ | ¼ | ¼ | Θ | Θ | Θ |
½ | ½ | ½ | Ι | Ι | Ι |
¾ | ¾ | ¾ | Κ | Κ | Κ |
¿ | ¿ | ¿ | Λ | Λ | Λ |
À | À | À | Μ | Μ | Μ |
Á | Á | Á | Ν | Ν | Ν |
 |  |  | Ξ | Ξ | Ξ |
à | à | à | Ο | Ο | Ο |
Ä | Ä | Ä | Π | Π | Π |
Å | Å | Å | Ρ | Ρ | Ρ |
Æ | Æ | Æ | Σ | Σ | Σ |
Ç | Ç | Ç | Τ | Τ | Τ |
È | È | È | Υ | Υ | Υ |
É | É | É | Φ | Φ | Φ |
Ê | Ê | Ê | Χ | Χ | Χ |
Ë | Ë | Ë | Ψ | Ψ | Ψ |
Ì | Ì | Ì | Ω | Ω | Ω |
Í | Í | Í | α | α | α |
Î | Î | Î | β | β | β |
Ï | Ï | Ï | γ | γ | γ |
Ð | Ð | Ð | δ | δ | δ |
Ñ | Ñ | Ñ | ε | ε | ε |
Ò | Ò | Ò | ζ | ζ | ζ |
Ó | Ó | Ó | η | η | η |
Ô | Ô | Ô | θ | θ | θ |
Õ | Õ | Õ | ι | ι | ι |
Ö | Ö | Ö | κ | κ | κ |
× | × | × | λ | λ | λ |
Ø | Ø | Ø | μ | μ | μ |
Ù | Ù | Ù | ν | ν | ν |
Ú | Ú | Ú | ξ | ξ | ξ |
Û | Û | Û | ο | ο | ο |
Ü | Ü | Ü | π | π | π |
Ý | Ý | Ý | ρ | ρ | ρ |
Þ | Þ | Þ | ς | ς | ς |
ß | ß | ß | σ | σ | σ |
à | à | à | τ | τ | τ |
á | á | á | υ | υ | υ |
â | â | â | φ | φ | φ |
ã | ã | ã | χ | χ | χ |
ä | ä | ä | ψ | ψ | ψ |
å | å | å | ω | ω | ω |
æ | æ | æ | ϑ | ϑ | ϑ |
ç | ç | ç | ϒ | ϒ | ϒ |
è | è | è | ϖ | ϖ | ϖ |
字符 | 名称 | 编号 | 字符 | 名称 | 编号 |
• | • | • | ∞ | ∞ | ∞ |
… | … | … | ∠ | ∠ | ∠ |
′ | ′ | ′ | ∧ | ∧ | ∧ |
″ | ″ | ″ | ∨ | ∨ | ∨ |
‾ | ‾ | ‾ | ∩ | ∩ | ∩ |
⁄ | ⁄ | ⁄ | ∪ | ∪ | ∪ |
℘ | ℘ | ℘ | ∫ | ∫ | ∫ |
ℑ | ℑ | ℑ | ∴ | ∴ | ∴ |
ℜ | ℜ | ℜ | ∼ | ∼ | ∼ |
™ | ™ | ™ | ≅ | ≅ | ≅ |
ℵ | ℵ | ℵ | ≈ | ≈ | ≈ |
← | ← | ← | ≠ | ≠ | ≠ |
↑ | ↑ | ↑ | ≡ | ≡ | ≡ |
→ | → | → | ≤ | ≤ | ≤ |
↓ | ↓ | ↓ | ≥ | ≥ | ≥ |
↔ | ↔ | ↔ | ⊂ | ⊂ | ⊂ |
↵ | ↵ | ↵ | ⊃ | ⊃ | ⊃ |
⇐ | ⇐ | ⇐ | ⊄ | ⊄ | ⊄ |
⇑ | ⇑ | ⇑ | ⊆ | ⊆ | ⊆ |
⇒ | ⇒ | ⇒ | ⊇ | ⊇ | ⊇ |
⇓ | ⇓ | ⇓ | ⊕ | ⊕ | ⊕ |
⇔ | ⇔ | ⇔ | ⊗ | ⊗ | ⊗ |
∀ | ∀ | ∀ | ⊥ | ⊥ | ⊥ |
∂ | ∂ | ∂ | ⋅ | ⋅ | ⋅ |
∃ | ∃ | ∃ | ⌈ | ⌈ | ⌈ |
∅ | ∅ | ∅ | ⌉ | ⌉ | ⌉ |
∇ | ∇ | ∇ | ⌊ | ⌊ | ⌊ |
∈ | ∈ | ∈ | ⌋ | ⌋ | ⌋ |
∉ | ∉ | ∉ | 〈 | ⟨ | 〈 |
∋ | ∋ | ∋ | 〉 | ⟩ | 〉 |
∏ | ∏ | ∏ | ◊ | ◊ | ◊ |
∑ | ∑ | ∑ | ♠ | ♠ | ♠ |
− | − | − | ♣ | ♣ | ♣ |
∗ | ∗ | ∗ | ♥ | ♥ | ♥ |
√ | √ | √ | ♦ | ♦ | ♦ |
∝ | ∝ | ∝ |
转义序列 | 字符 |
---|---|
\b | 退格 |
\f | 走纸换页 |
\n | 换行 |
\r | 回车 |
\t | 横向跳格 (Ctrl-I) |
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
使用Python可以很方便的将字符串转换成转义字符串,只需要两行代码:
import html
print(html.escape('<a href="http://123.5ikfc.com">123.5ikfc.com</a>'))
输出结果如下:
<a href="http://123.5ikfc.com">123.5ikfc.com</a>
使用Javascript可以通过innerText和innerHTML属性返回转义字符串:
function htmlEntities(html){
var text = document.createTextNode(html);
var p = document.createElement('p');
p.appendChild(text);
return p.innerHTML;
}
此函数可以返回转义后的字符串,但是引号不会被转义,如果有需要可以对返回结果replace处理一下即可。
(程序代码来源于网络)
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)
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
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');