下划线“_”本身不是html特殊字符,无需转义;但混用markdown时需用\_逃逸,或在css/js干扰场景下可用_确保原样显示。

下划线 _ 在 HTML 中本身没有特殊含义,但如果你在文本里写 _text_,浏览器会原样显示,不会变成斜体——除非你用了 Markdown 渲染器。真正需要转义的是那些会被 HTML 解析器当作标记处理的字符,比如 、<code>&、"。而 _ 不在此列,直接写就行;但如果你在某些上下文中(如 `
` 或代码块)想确保它不被 CSS 或 JS 误处理,用字符实体反而多余。
哪些符号必须用字符实体才能正确显示
只有 HTML 保留字符才需要转义,否则浏览器会尝试解析为标签或属性:
必须写成 <code><,否则<div> 会被当成开始标签 <li> <code>>建议写成>,尤其在<script></script>内部或属性值中-
&必须写成&,否则后续的会被截断或报错 -
"在属性值中要用"(比如title="He said "Hi""),否则引号提前闭合 - 你在 CSS 中设置了
text-decoration: underline,又想让某个_不被视觉上“连笔”——这时用_可避免字体渲染把多个下划线合并成粗线 - 你用 JS 动态插入含
_的字符串到innerHTML,而该字符串来自不可信输入(比如用户评论),且你同时用了正则高亮_word_这类语法——此时提前转义能防止意外匹配 - 纯属排版需求:有些等宽字体对连续
___渲染异常,拆成___可强制单字符间距 - 写成
_(十六进制)是对的,但漏掉x写成F;就无效——浏览器只认十进制或带x的十六进制 - 误用 HTML5 新增的命名实体如
_:它确实等于_,但 IE 和旧版 Safari 不支持,兼容性差 - 在 `
为什么 _ 通常不用转义,但有时又建议用 _
下划线 ASCII 码是 95,对应字符实体 _。它几乎从不需要转义,但两个例外场景值得注意:
常见错误:混淆字符实体与 Unicode 编码写法
很多人复制粘贴时混用不同格式,导致页面显示乱码或解析失败:
