HTML字符实体(Character Entities)
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 |
a | À | À | Capital A, grave accent |
a | Á | Á | Capital A, acute accent |
? | Â | Â | Capital A, circumflex |
? | Ã | Ã | Capital A, tilde |
? | Ä | Ä | Capital A, di?esis / umlaut |
? | Å | Å | Capital A, ring |
? | Æ | Æ | Capital AE ligature |
? | Ç | Ç | Capital C, cedilla |
e | È | È | Capital E, grave accent |
e | É | É | Capital E, acute accent |
e | Ê | Ê | Capital E, circumflex |
? | Ë | Ë | Capital E, di?esis / umlaut |
i | Ì | Ì | Capital I, grave accent |
i | Í | Í | Capital I, acute accent |
? | Î | Î | Capital I, circumflex |
? | Ï | Ï | Capital I, di?esis / umlaut |
D | Ð | Ð | Capital Eth, Icelandic |
? | Ñ | Ñ | Capital N, tilde |
o | Ò | Ò | Capital O, grave accent |
o | Ó | Ó | Capital O, acute accent |
? | Ô | Ô | Capital O, circumflex |
? | Õ | Õ | Capital O, tilde |
? | Ö | Ö | Capital O, di?esis / umlaut |
× | × | × | 乘号Multiply sign |
? | Ø | Ø | Capital O, slash |
u | Ù | Ù | Capital U, grave accent |
u | Ú | Ú | Capital U, acute accent |
? | Û | Û | Capital U, circumflex |
u | Ü | Ü | Capital U, di?esis / umlaut |
Y | Ý | Ý | Capital Y, acute accent |
T | Þ | Þ | Capital Thorn, Icelandic |
? | ß | ß | Small sharp s, German sz |
a | à | à | Small a, grave accent |
a | á | á | 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 |
e | è | è | Small e, grave accent |
e | é | é | Small e, acute accent |
e | ê | ê | Small e, circumflex |
? | ë | ë | Small e, di?esis / umlaut |
i | ì | ì | Small i, grave accent |
i | í | í | Small i, acute accent |
? | î | î | Small i, circumflex |
? | ï | ï | Small i, di?esis / umlaut |
e | ð | ð | Small eth, Icelandic |
? | ñ | ñ | Small n, tilde |
o | ò | ò | Small o, grave accent |
o | ó | ó | Small o, acute accent |
? | ô | ô | Small o, circumflex |
? | õ | õ | Small o, tilde |
? | ö | ö | Small o, di?esis / umlaut |
÷ | ÷ | ÷ | 除号Division sign |
? | ø | ø | Small o, slash |
u | ù | ù | Small u, grave accent |
u | ú | ú | Small u, acute accent |
? | û | û | Small u, circumflex |
u | ü | ü | 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,因为这个效率高,支持的字符集也更多。
做完上面那一步之后,接下来是以每两个字节为单位对字符串进行处理。这两个字节直接转化为数字就是xxxx;中的xxxxx,如果这个数字小于128就直接使用这个字符(注意这里就变成单字节了),否则就使用xxxx;的形式。这里有一点要注意,就是当这个数字是65279(16进制的0xFEFF)时,请把它忽略掉,因为这个是Unicode编码中的传输控制字符,而我们现在的字符串已经只有iso-8859-1编码中的前128个字符了,所以我们不需要它了。
好了,基本思路就是这样,下面是实现的程序:
-
<?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是需
-
-
?>
-
}
-
return $output;
-
}
-
}
-
$output .= "".$code.";";
-
} else if ($code != 65279) {
-
$output .= chr($code);
-
if ($code < 128) {
-
$code = ord($str{$i}) * 256 ord($str{$i 1});
-
for ($i = 0; $i < strlen($str); $i ,$i ) {
-
$str = iconv($encode, "UTF-16BE", $str);
-
function nochaoscode($encode, $str) {