HTML字符实体(Character Entities)

piaoling  2011-02-01 05:18:52

HTML字符实体(Character Entities)

有些字符在HTML里有特别的含义,比如小于号<就表示HTML Tag的开始,这个小于号是不显示在我们最终看到的网页里的。那如果我们希望在网页中显示一个小于号,该怎么办呢?

这就要说到HTML字符实体(HTML Character Entities)了。

一个字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。

比如,要显示小于号,就可以写<或者<。

用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。

注意:Entity是区分大小写的。

 

如何显示空格

通常情况下,HTML会自动截去多余的空格。不管你加多少空格,都被看做一个空格。比如你在两个字之间加了10个空格,HTML会截去9个空格,只保留一个。为了在网页中增加空格,你可以使用 表示空格。

 

最常用的字符实体(Character Entities)

 

 

 

显示结果 说明 Entity Name Entity Number
  显示一个空格    
< 小于 < <
> 大于 > >
& &符号 & &
" 双引号 " "

其他常用的字符实体(Character Entities)

 

 

显示结果 说明 Entity Name Entity Number
? 版权 © ©
? 注册商标 ® ®
× 乘号 × ×
÷ 除号 ÷ ÷

 

ISO Latin-1字符集:

 

 

字符

十进制字符编号 实体名字 说明
--- --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
--- --- 制表符Horizontal tab
--- --- 换行Line feed
--- --- 未使用Unused
--- --- 未使用Unused
--- --- 回车Carriage Return
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
---  --- 未使用Unused
  --- Space
! ! --- 惊叹号Exclamation mark
" " " 双引号Quotation mark
# # --- 数字标志Number sign
$ $ --- 美元标志Dollar sign
% % --- 百分号Percent sign
& & & Ampersand
" ' --- 单引号Apostrophe
( ( --- 小括号左边部分Left parenthesis
) ) --- 小括号右边部分Right parenthesis
* * --- 星号Asterisk
+ --- 加号Plus sign
, , --- 逗号Comma
- - --- 连字号Hyphen
. . --- 句号Period (fullstop)
/ / --- 斜杠Solidus (slash)
0 0 --- 数字0 Digit 0
1 1 --- 数字1 Digit 1
2 2 --- 数字2 Digit 2
3 3 --- 数字3 Digit 3
4 4 --- 数字4 Digit 4
5 5 --- 数字5 Digit 5
6 6 --- 数字6 Digit 6
7 7 --- 数字7 Digit 7
8 8 --- 数字8 Digit 8
9 9 --- 数字9 Digit 9
: : --- 冒号Colon
; ; --- 分号Semicolon
< < < 小于号Less than
= = --- 等于符号Equals sign
> > > 大于号Greater than
? ? --- 问号Question mark
@ @ --- Commercial at
A A --- 大写A Capital A
B B --- 大写B Capital B
C C --- 大写C Capital C
D D --- 大写D Capital D
E E --- 大写E Capital E
F F --- 大写F Capital F
G G --- 大写G Capital G
H H --- 大写H Capital H
I I --- 大写J Capital I
J J --- 大写K Capital J
K K --- 大写L Capital K
L L --- 大写K Capital L
M M --- 大写M Capital M
N N --- 大写N Capital N
O O --- 大写O Capital O
P P --- 大写P Capital P
Q Q --- 大写Q Capital Q
R R --- 大写R Capital R
S S --- 大写S Capital S
T T --- 大写T Capital T
U U --- 大写U Capital U
V V --- 大写V Capital V
W W --- 大写W Capital W
X X --- 大写X Capital X
Y Y --- 大写Y Capital Y
Z Z --- 大写Z Capital Z
[ [ --- 中括号左边部分Left square bracket
\ --- 反斜杠Reverse solidus (backslash)
] ] --- 中括号右边部分Right square bracket
^ ^ --- Caret
_ _ --- 下划线Horizontal bar (underscore)
` ` --- 尖重音符Acute accent
a a --- 小写a Small a
b b --- 小写b Small b
c c --- 小写c Small c
d d --- 小写d Small d
e e --- 小写e Small e
f f --- 小写f Small f
g g --- 小写g Small g
h h --- 小写h Small h
i i --- 小写i Small i
j j --- 小写j Small j
k k --- 小写k Small k
l l --- 小写l Small l
m m --- 小写m Small m
n n --- 小写n Small n
o o --- 小写o Small o
p p --- 小写p Small p
q q --- 小写q Small q
r r --- 小写r Small r
s s --- 小写s Small s
t t --- 小写t Small t
u u --- 小写u Small u
v v --- 小写v Small v
w w --- 小写w Small w
x x --- 小写x Small x
y y --- 小写y Small y
z z --- 小写z Small z
{ --- 大括号左边部分Left curly brace
| | --- 竖线Vertical bar
} --- 大括号右边部分Right curly brace
~ ~ --- Tilde
---  --- 未使用Unused
      空格Nonbreaking space
? ¡ ¡ Inverted exclamation
¢ ¢ 货币分标志Cent sign
£ £ 英镑标志Pound sterling
¤ ¤ ¤ 通用货币标志General currency sign
¥ ¥ 日元标志Yen sign
| ¦ ¦ or &brkbar; 断竖线Broken vertical bar
§ § § 分节号Section sign
¨ ¨ or ¨ 变音符号Umlaut
? © © 版权标志Copyright
a ª ª Feminine ordinal
? « « Left angle quote, guillemet left
? ¬ ¬ Not sign
­ ­ ­ Soft hyphen
? ® ® 注册商标标志Registered trademark
ˉ ¯ ¯ or &hibar; 长音符号Macron accent
° ° ° 度数标志Degree sign
± ± ± 加或减Plus or minus
2 ² ² 上标2 Superscript two
3 ³ ³ 上标3 Superscript three
´ ´ 尖重音符Acute accent
μ µ µ Micro sign
? Paragraph sign
· · Middle dot
? ¸ ¸ Cedilla
1 ¹ ¹ 上标1 Superscript one
o º º Masculine ordinal
? » » Right angle quote, guillemet right
? ¼ ¼ 四分之一Fraction one-fourth
? ½ ½ 二分之一Fraction one-half
? ¾ ¾ 四分之三Fraction three-fourths
? ¿ ¿ Inverted question mark
À À Capital A, grave accent
Á Á Capital A, acute accent
? Â Â Capital A, circumflex
? Ã Ã Capital A, tilde
? Ä Ä Capital A, di?esis / umlaut
? Å Å Capital A, ring
? Æ Æ Capital AE ligature
? Ç Ç Capital C, cedilla
È È Capital E, grave accent
É É Capital E, acute accent
Ê Ê Capital E, circumflex
? Ë Ë Capital E, di?esis / umlaut
Ì Ì Capital I, grave accent
Í Í Capital I, acute accent
? Î Î Capital I, circumflex
? Ï Ï Capital I, di?esis / umlaut
D Ð Ð Capital Eth, Icelandic
? Ñ Ñ Capital N, tilde
Ò Ò Capital O, grave accent
Ó Ó Capital O, acute accent
? Ô Ô Capital O, circumflex
? Õ Õ Capital O, tilde
? Ö Ö Capital O, di?esis / umlaut
× × × 乘号Multiply sign
? Ø Ø Capital O, slash
Ù Ù Capital U, grave accent
Ú Ú Capital U, acute accent
? Û Û Capital U, circumflex
Ü Ü Capital U, di?esis / umlaut
Y Ý Ý Capital Y, acute accent
T Þ Þ Capital Thorn, Icelandic
? ß ß Small sharp s, German sz
à à Small a, grave accent
á á Small a, acute accent
a â â Small a, circumflex
? ã ã Small a, tilde
? ä ä Small a, di?esis / umlaut
? å å Small a, ring
? æ æ Small ae ligature
? ç ç Small c, cedilla
è è Small e, grave accent
é é Small e, acute accent
ê ê Small e, circumflex
? ë ë Small e, di?esis / umlaut
ì ì Small i, grave accent
í í Small i, acute accent
? î î Small i, circumflex
? ï ï Small i, di?esis / umlaut
e ð ð Small eth, Icelandic
? ñ ñ Small n, tilde
ò ò Small o, grave accent
ó ó Small o, acute accent
? ô ô Small o, circumflex
? õ õ Small o, tilde
? ö ö Small o, di?esis / umlaut
÷ ÷ ÷ 除号Division sign
? ø ø Small o, slash
ù ù Small u, grave accent
ú ú Small u, acute accent
? û û Small u, circumflex
ü ü Small u, di?esis / umlaut
y ý ý Small y, acute accent
t þ þ Small thorn, Icelandic
? ÿ ÿ Small y, umlaut

 

symbols, mathematical symbols, and Greek letters

 

 

 

? ƒ Α Α Β Β Γ Γ Δ Δ
Ε Ε Ζ Ζ Η Η Θ Θ Ι Ι
Κ Κ Λ Λ Μ Μ Ν Ν Ξ Ξ
Ο Ο Π Π Ρ Ρ Σ Σ Τ Τ
Υ Υ Φ Φ Χ Χ Ψ Ψ Ω Ω
α α β β γ γ δ δ ε ε
ζ ζ η η θ θ ι ι κ κ
λ λ μ μ ν ν ξ ξ ο ο
π π ρ ρ ? ς σ σ τ τ
υ υ φ φ χ χ ψ ψ ω ω
? ϑ ? ϒ ? ϖ ?
? ?
? ? ? ?
? ?
? ? ? ? ?
? ? ? ? ?
? ?
? ?
?
?
? ? ? ?
? ? ? ?
? ? ? ? ?
? ? ? ?
markup-significant and internationalization characters

 

 

 

" & & < < > > ? Œ
? œ ? Š ? š ? Ÿ ? ˆ
? ˜ ? ? ? ?
? ? ?
?
? ? ? ?
? ?/STRONG>

 http://blog.csdn.net/fengyuruhui/archive/2007/10/29/1854586.aspx
---------------------------------------------------------------------------
任意字符集下正常显示网页
通常情况下,我们的网页要指定一个编码字符集,如 GB2312、UTF-8、ISO-8859-1 等,这样我们就可以在网页上显示我们指定编码的文字了。但是我们很可能会遇到这种情况,那就是我们可能希望在 ISO-8859-1 编码的网页上显示汉字,或者在 GB2312 编码的网页上显示韩文等。当然一种解决办法就是我们不用 ISO-8859-1 或者 GB2312 编码,而统统都采用 UTF-8 编码,这样我们只要在这种编码下,就可以混合显示各国文字了,这是现在很多网站采用的方法。

而我这里所说的并非上面这种方法,因为上面这种方法必须要指定字符集为 UTF-8 才可以,一旦用户手工指定为其他字符集,或者可能因为某些原因,那个字符集设置没起作用,而浏览器又没有正确自动识别的话,我们看到的网页还是乱码,尤其是在某些用框架作的网页中,某个框架中的页面如果字符集设置没起作用,在 firefox 中显示乱码而且还没法改变(我是说在不装RightEncode插件的情况下)。

而我这里介绍的方法即使是把网页指定为 ISO-8859-1 字符集,也能够正确显示汉字、日文等。原理很简单,就是把除了 ISO-8859-1 编码中前128个字符以外的所有其他的编码都用 NCR(Numeric character reference) 来表示。比如“汉字”这两个字,如果我们写成“汉字”这种形式,那么它在任意字符集下都可以正确显示。根据这个原理,我写了下面这个程序,它可以把现有的网页转化为在任意字符集下都能显示的网页。你只需要指定源网页的字符集和源网页,点提交按钮,就可以得到目标网页了。你也可以只转化某些文字,只需要把文字填写到文本框中,并指定这些文字原来的字符集,点提交按钮,就会在页面上面显示编码后的文字了。另外我还编写了 WordPress 的插件,现在我的 Blog 已经可以在任意字符集下都能正确显示了。

实现方法:

首先第一步是要把源字符集的字符串转化为UTF-16字符集,做这一步是因为UTF-16字符集中的每个字符都是两个字节,后面处理起来很容易,而如果在源字符集上直接做处理则很复杂。源字符集可以从原网页中的meta标签中获得,也可以单独指定,我的程序是让用户在表单中指定源字符集,因为我不能保证用户提交的文件就一定是HTML文件(其他文件也是可以的,比如这个WordPress的汉化包源文件是个po文件,它里面的内容也可以这样处理),而且即使是HTML文件,里面也不一定就有用于指定字符集的meta标签,所以通过表单单独指定字符集比较保险。你可能会觉得将一种字符集转化为另一种字符集很复杂,确实如此,如果自己来实现的话,确实非常麻烦,但是用PHP来做却很容易,因为它里面已经包含这样的函数了,你可以通过iconv函数很容易的来实现各种字符集之间的转化,如果你的机器上没有安装iconv扩展,你也可以使用mb_convert_encoding函数,如果Multibyte String扩展也没有安装,那就没办法了,因为你要自己实现那么多种编码的转化基本上是不可能的,除非你是顶级大牛!推荐使用iconv,因为这个效率高,支持的字符集也更多。

做完上面那一步之后,接下来是以每两个字节为单位对字符串进行处理。这两个字节直接转化为数字就是&#xxxxx;中的xxxxx,如果这个数字小于128就直接使用这个字符(注意这里就变成单字节了),否则就使用&#xxxxx;的形式。这里有一点要注意,就是当这个数字是65279(16进制的0xFEFF)时,请把它忽略掉,因为这个是Unicode编码中的传输控制字符,而我们现在的字符串已经只有iso-8859-1编码中的前128个字符了,所以我们不需要它了。

好了,基本思路就是这样,下面是实现的程序:

 

  1. <?php
    • function nochaoscode($encode, $str) {
      •     $str = iconv($encode, "UTF-16BE", $str);
        •     for ($i = 0; $i < strlen($str); $i ,$i ) {
          •         $code = ord($str{$i}) * 256 ord($str{$i 1});
            •         if ($code < 128) {
              •             $output .= chr($code);
                •         } else if ($code != 65279) {
                  •             $output .= "&#".$code.";";
                    •         }
                      •     }
                        •     return $output;
                          • }
                            • ?>
                              • 函数的参数中,$encode是源字符集,$str是需

类别 :  HTML(11)  |  浏览(5005)  |  评论(0)
发表评论(评论将通过邮件发给作者):

Email: