
直接用 ℃ 或 °C,别手敲“℃”——它不是标准 ASCII,复制粘贴容易乱码,html 里必须用实体。
HTML 里显示摄氏度符号的两种可靠写法
浏览器对 ℃ 字符本身支持不一致:某些旧版 IE、部分嵌入式 webview、甚至某些 CMS 编辑器会把它当乱码或自动过滤。最稳的方式是用 Unicode 实体:
-
℃是摄氏度专用 Unicode 字符(U+2103),语义准确,兼容性好(IE6+ 都认) -
°C是“°”加字母 C,视觉等效,但属于“模拟写法”——°是度符号(U+00B0),不是摄氏度专用符 - 别用
℃原字符直接写在 HTML 源码里,除非你 100% 控制文件编码为 UTF-8 且声明了<meta charset="UTF-8">
JavaScript 动态插入时怎么避免变成问号或方块
如果用 js 拼接温度字符串(比如 temp + '℃'),运行时出错往往不是代码问题,而是 HTML 页面没声明编码:
- 确保页面有
<meta charset="UTF-8">在里,否则 JS 读取/写入的℃可能被错误解码 - 更稳妥的做法是 JS 里也用实体:
temp + '℃'或String.fromCodePoint(0x2103) - 用
textContent赋值时,℃会被当纯文本;用innerHTML才会解析实体——这点常被忽略
后端模板(如 django / Jinja / EJS)里怎么安全渲染
模板引擎默认会转义,直接写 {{ temp }}℃ 很可能输出成字面的“℃”或被干掉。正确做法取决于引擎:
立即学习“前端免费学习笔记(深入)”;
- Django/Jinja:用
{{ temp|add:"℃" }}或{{ temp }}℃(放在模板里,不进变量值) - EJS:用
℃,别用——后者会二次转义实体 - Node.js 的
res.send()返回 HTML 时,确保响应头含Content-Type: text/html; charset=utf-8
真正麻烦的不是“怎么打”,而是“在哪打完还能稳稳显示”——页面编码、传输编码、模板转义层级,三者只要漏一环,℃ 就变 或 ?。实体 ℃ 是唯一跨场景不翻车的方案。