必须确保文件实际保存为UTF-8编码且置于最开头,二者缺一不可;VS Code需手动确认右下角显示UTF-8并执行“Save with Encoding→UTF-8”,同时禁用autoGuessEncoding。

必须把文件存成 UTF-8(带 BOM 或不带均可,但 VS Code 默认不带),再在 里写 </meta charset="UTF-8"> —— 少一步都可能乱码。
VS Code 保存时选错编码, 就白写了
VS Code 新建文件默认是 UTF-8,但打开一个已有文件时,它会尝试“猜”编码(比如 GBK 文件被误判为 UTF-8)。这时你改完代码、直接 Ctrl+S,实际保存的仍是 GBK 字节,浏览器读到的是错的二进制流, 根本来不及生效。
- 右下角状态栏看到 “GBK”“ISO-8859-1” 等字样,立刻点它 → 选 Reopen with Encoding →
UTF-8 - 再点右下角 → Save with Encoding → 选
UTF-8(不是 “UTF-8 with BOM”,除非你明确要兼容旧 IE) - 顺手关掉
files.autoGuessEncoding:按Ctrl+,打开设置,搜这个词,设为false,避免下次又被猜错
的位置和写法很关键
这个标签必须放在 最开头,且必须在 、任何 <script></script>、注释或空行之前。HTML 解析器只扫描前 1024 字节找它,放错位置等于没写。
- 正确:
... - 错误:
(注释挡住了) - 错误:
<script>...</script>(JS 提前占位) - 别写
utf8、UTF8、utf_8—— 只认UTF-8(连大小写都不能错)
本地双击打开 HTML 文件时,HTTP 响应头不存在,全靠文件本身
用 Live Server 或部署到 Nginx/Apache 时,服务器能发 Content-Type: text/html; charset=UTF-8 响应头,优先级高于 。但双击 index.html 打开是 file:// 协议,没有响应头,此时唯一依赖就是文件编码 + 二者严格一致。
- VS Code 里右下角显示 “UTF-8”,且你手动
Save with Encoding → UTF-8,才算真正存对了 - Notepad++ 用户:务必用菜单 编码 → 转为 UTF-8-BOM(不是 “UTF-8”),否则某些 Windows 环境下双击仍可能乱码
- 验证方法:用命令行跑
file -i index.html(macOS/Linux)或 PowerShell 跑Get-Content index.html -Encoding Byte | Select -First 3,看头三个字节是不是EF BB BF(BOM)或至少确认输出含charset=utf-8
最常被忽略的一点:改完 后没重新保存文件,或者保存时编码没同步切换 —— 浏览器加载的是旧字节,不是你编辑器里看到的新文本。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











