下划线\_通常无需转义,仅在css渲染干扰、js正则误匹配或等宽字体连笔三类场景才需用\_;真正必须转义的只有&、、"、'五个html保留字符。

直接写 _ 就行,绝大多数情况根本不需要转义;只有在 CSS 渲染干扰、JS 动态插入时被误匹配,或等宽字体连续下划线粘连这三种特定场景下,才考虑用 _。
哪些字符不转义就会出错
真正必须转义的只有五个:HTML 解析器会拿它们当语法边界处理的字符。漏掉任何一个,轻则显示异常,重则标签截断、XSS 漏洞。
不转成 <code>,浏览器一见到就找闭合的 <code>>,中间内容可能被吞掉甚至执行为脚本-
>虽然单独出现风险低,但在<script></script>块里或属性值中不转成>,容易提前结束标签或引号对 -
&必须写成&,否则后面紧跟着的字母会被当成实体名(比如©),一旦没闭合分号,整段文本就乱码 -
"在双引号包围的属性值里必须写成",否则引号提前闭合,导致后续 HTML 结构崩坏 -
'同理,在单引号属性值中要用',否则同样引发解析中断
下划线 _ 为什么通常不用转义
因为 _ 在 HTML 规范里没有任何语义,既不是标签分隔符,也不参与属性解析。浏览器看到它,就老老实实渲染一个 ASCII 95 字符。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
- 写
_text_不会变斜体——除非你用了 Markdown 渲染器,那和 HTML 无关 - CSS 里设了
text-decoration: underline,也不会把_当作装饰线来叠加;它是独立字符,不是样式指令 - UTF-8 页面里直接输入中文、©、® 都没问题,
_更不在需要转义的范围内
什么时候非得用 _ 才安全
不是“推荐”,而是“不得不”——仅限以下三类真实发生过的故障场景:
- 你在用 JS 拼接字符串后塞进
innerHTML,而源数据来自用户输入,且正则高亮逻辑是/_(\w+)_/g——此时不提前把原始_转成_,就会误匹配、破坏内容 - CSS 设置了
font-family: 'Fira Code', monospace这类编程字体,连续多个___可能被渲染成一条粗下划线(连笔),用___强制拆开字形 - 你给某个元素加了
text-underline-position: under,又发现下划线和_的 baseline 重叠导致视觉粘连,用_可绕过字体渲染层的合并逻辑
真正容易被忽略的是:转义不是越全越好。滥用 _ 会增加 HTML 体积、降低可读性,还可能在旧版 IE 或某些富文本编辑器里触发兼容问题——尤其 _ 这种命名实体,Safari 12 之前根本不认。










