<html>
<head>
<title>字符转HTML实体编码</title>
<script>
function $(id) {return document.getElementById(id)}
function htmlEncode(input)
{
var code = input.charCodeAt()// 获得实体编码
var div = $("divCode")
/*
* 实体编码的格式是:数字
* &是 &
* # 是 #
* code 用户输入的字的实体编码
* 是
*
* 如果直接写成 "" + code + ""的形式会被浏览器直接解析为对应的字符,从而失去了编码的作用。
*/
div.innerHTML = "&" + "&#35" + code + "&#59"//String.fromCharCode(code)解码
}
</script>
</head>
<body>
<input type="text" onchange="htmlEncode(this.value)"/>
<div id="divCode"></div>
</body>
</html>
使用 String.fromCharCode(code)便可以将实体编码转换回字符。
以上列出的一些实体比较容易记忆,但有一些不容易记住的您可以查看 whatwg 或使用 解码工具 。
HTML 实体是一段以连字符号( &)开头、以分号( )结尾的字符串。用以显示不可见字符及保留字符(如 HTML 标签)
在前端,一般为了避免 XSS 攻击,会将 <> 编码为 < 与 >,这些就是 HTML 实体编码。
在 HTML 转义时,仅仅只需要对六个字符进行编码: &、 <、 >、 " 、 ' 和 `。我们可以使用 he 库进行编码及转义。