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) {

