把 <、>、& 和引号编成 HTML 实体,或把实体还原成字符。
一段文字里如果有 < 或 &,直接放进 HTML,浏览器会把它当成标记。编码把这些字符变成实体,解码把实体还原成字符。这和 JSON 转义 不是一回事,也不是去掉标签。它只改写字符。
&、<、> 和两种引号。&#xHHHH;。页面本身是 UTF-8、只需要转义标记字符时,把它关掉。中 这种十进制、中 这种十六进制,以及一小份命名实体:amp、lt、gt、quot、apos、nbsp、copy、reg、trade、mdash、ndash、hellip、laquo、raquo、bull、middot、euro、pound、yen、cent、sect、para、deg、plusmn、times、divide、micro。不在这份名单里的名字会原样留下。编码不会套标签,也不会加文档类型。已经是实体的 & 再编一次会变成 &。解码一次只剥一层。HTML5 里很多名字不在上面的名单中,会保持原样。不是合法码位的数字实体也保持原文,方便你看见写错的地方。
如果当前是编码,& 本身被转义了,你看到的是实体的源码。改成解码,已知的名字才会变成字符。
这一页覆盖日常文字里常见的名字,再加上任意数字实体。不认识的名字会留着,避免把拼写错误悄悄丢掉。