HTML表格单元格()里直接写、&会崩布局,因浏览器将其解析为标签或实体,导致DOM结构异常、内容错位或样式失效。

表格里直接写、&会崩布局
HTML表格单元格( 比如 Python 用 Hello 表格单元格默认忽略连续空格和换行符, 显示 © 或 € 却是□,大概率不是实体写错了,而是编码声明或上下文错位。UTF-8 页面里写 )里如果直接写 或
&,浏览器会尝试解析成标签或实体起始符,轻则内容消失,重则整行 没闭合但页面没报错
被截断。这不是样式问题,是解析器提前终止了 DOM 构建。
& 最危险——它触发实体解析, 后面若没跟分号,可能被当成不完整标签;
" 在 title="..." 属性里漏转,会导致属性值提前结束&、、
>、"、';其他如 ©、®、→ 可用命名或数字实体,但非强制,就得统一处理
后端吐出的数据已转义,前端再拼接就双重复
html.escape() 处理过一次,又在 JS 里用 innerHTML 直接塞进去,结果页面显示的是 而不是 。本质是转义叠了两层。
还是 ?后者说明后端已逃逸过
textContent —— 它天然不解析 HTML,安全且避免叠加
innerHTML 显示富文本(如带链接的表格内容),先确认数据是否已转义;若已转义,直接赋值;若未转义,必须走 escapeHtml() 再塞{'
v-html 都是“信任此内容”的出口,别把用户输入直接喂进去
空格和换行在表格里不生效?试试实体和CSS
和 是等价的不换行空格,但用多了会让 HTML 膨胀; 在 里能换行,但语义上它只是个换行符,不是段落分隔。
或 CSS white-space: pre;(注意会保留所有空白,包括制表符)word-break: break-word; 到 的 style 或 class
只适用于简单换行,复杂排版建议用 —、…,命名实体(如 —)在旧 IE 有兼容风险从数据库读版权符号、欧元符号显示为方块?
© 或 © 都该正常,但如果页面没声明 ,或者后端返回 HTTP header 的 charset 是 ISO-8859-1,浏览器就会按错误编码解码。
charset=utf-8
,且必须是前 1024 字节内header() 前输出不可见字符,破坏 charset 声明contenteditable 编辑时,用户粘贴的 Word 内容常带私有 Unicode 字符(如智能引号),这类字符即使写了 “ 也可能因字体缺失显示为空白或方块
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











