HTML 的实体编码(HTML Entity Encode)

html-css017

HTML 的实体编码(HTML Entity Encode),第1张

以上列出的一些实体比较容易记忆,但有一些不容易记住的您可以查看 whatwg 或使用 解码工具 。

HTML 实体是一段以连字符号( &)开头、以分号( )结尾的字符串。用以显示不可见字符及保留字符(如 HTML 标签)

在前端,一般为了避免 XSS 攻击,会将 <> 编码为 < 与 >,这些就是 HTML 实体编码。

在 HTML 转义时,仅仅只需要对六个字符进行编码: &、 <、 >、 " 、 ' 和 `。我们可以使用 he 库进行编码及转义。

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

HTML字符实体(Character Entities)

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

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

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

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

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

如何显示空格

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

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

显示结果说明Entity NameEntity Number

显示一个空格

<小于<<

>大于>>

&&符号&&

"双引号""

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

显示结果说明Entity NameEntity Number

?版权??

?注册商标??

×乘号××

&pide除号&pide&pide

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

html_entity_decode — Convert HTML entities to their corresponding characters

说明

html_entity_decode ( string $string , int $flags = ENT_COMPAT , string|null $encoding = null ) : string

html_entity_decode() is the opposite of htmlentities() in that it converts HTML entities in the string to their corresponding characters.

More precisely, this function decodes all the entities (including all numeric entities) that a) are necessarily valid for the chosen document type — i.e., for XML, this function does not decode named entities that might be defined in some DTD — and b) whose character or characters are in the coded character set associated with the chosen encoding and are permitted in the chosen document type. All other entities are left as is.

参数

string

The input string.

flags

A bitmask of one or more of the following flags, which specify how to handle quotes and which document type to use. The default is ENT_COMPAT | ENT_HTML401.