网页中直接输入°C显示异常是因为“°”非ASCII字符,受编码(UTF-8/GBK)、编辑器、HTTP响应头charset不一致影响,易乱码;推荐用HTML实体°或Unicode转义\u00B0,并声明UTF-8编码。

网页中直接输入°C 为什么有时显示异常
因为“°”不是 ASCII 字符,不同编辑器、文件编码(如 UTF-8 vs GBK)、HTTP 响应头 Content-Type 中的 charset 设置不一致时,浏览器可能无法正确解析你键盘敲出的 ° 符号,导致乱码或方块。即使源码看着正常,保存为 ANSI 编码再打开就可能变样。
- 推荐始终用 HTML 实体或 Unicode 转义,不依赖键盘直输
- 确保 HTML 文件声明了
<meta charset="UTF-8"> - 服务器返回的
Content-Type头最好显式包含; charset=utf-8
使用 ° 实体是最稳妥的写法
° 是 HTML 标准实体,语义明确、兼容性极好(从 IE6 到现代浏览器都支持),且不依赖文件编码。它等价于 Unicode U+00B0,渲染结果就是标准摄氏度圆圈。
示例:
<p>当前温度:25<code>°</code>C</p>
注意:° 后面**不能加空格**,否则会多出一个空白;也不需要写分号以外的字符(比如 °C 是错的)。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
用 ° 或 ° 也能用,但有细微差别
° 是十进制 Unicode 码点,° 是十六进制写法,两者效果相同。它们比 ° 更“底层”,适合需要动态拼接字符串的场景(比如 JS 里生成 HTML)。
- JS 中可写:
document.write("25" + "°" + "C") - 但注意:若字符串来自用户输入或 API,需先做 HTML 转义,否则
°可能被当成纯文本显示出来 - 在模板引擎(如 Vue/React)中,优先用组件内联写法(如
{'25\u00B0'}C),避免拼接 HTML 字符串
CSS 伪元素方案不适合单纯显示 °
有人尝试用 ::after 插入 content: "°",这看似灵活,但实际增加了复杂度和风险:
- 如果 CSS 加载失败或被禁用,温度数字后面就没了符号
- 屏幕阅读器可能无法把
25和伪元素的°正确连读为“25摄氏度” - 复制网页文字时,° 符号通常不会被一并复制
- 纯展示需求下,没必要绕路走 CSS
真正需要动态控制符号样式(比如颜色/大小独立于数字)时,才考虑包裹 <span class="degree">°</span> 再单独设样式。

















