必须在最开头且前写唯一一行,文件保存为无BOM的UTF-8编码,并确保服务器响应头Content-Type也设为UTF-8。

直接在 HTML 文件的 里写一行 ,位置越靠前越好,最好紧贴 开始标签,且必须在
正确写法和位置要求
这行代码必须满足三个基本条件:
- 只写一次,不重复;
- 值必须严格为 "UTF-8"(注意大小写、带英文双引号、U 大写、中间有短横、末尾无空格);
- 放在 内最开头,早于
、、<script></script> 和 等所有其他标签。
文件保存编码必须匹配
仅写对 meta 标签还不够,HTML 文件本身也得是 UTF-8 编码格式:
- 用 VS Code、Sublime Text 或 Notepad++ 打开文件,选择“另存为”,编码选 UTF-8(不是“UTF-8 with BOM”);
- 避免用 Windows 记事本默认保存,它容易存成 GBK 或带 BOM 的 UTF-8,导致乱码;
- 可借助命令行检查:运行 xxd yourfile.html | head,若开头没有 ef bb bf,说明无 BOM,更安全。
服务器响应头也要一致
当网页部署到服务器上时,HTTP 响应头中的 Content-Type 字段优先级高于 meta 标签:
立即学习“前端免费学习笔记(深入)”;
- Apache:在 .htaccess 中加 AddDefaultCharset UTF-8;
- Nginx:在 server 块中加 charset utf-8;;
- Node.js(Express):用 res.set('Content-Type', 'text/html; charset=UTF-8');
- 本地测试(file:// 协议)时,浏览器只认 meta,不读响应头,所以此时 meta 尤其关键。
别用过时或等效但不推荐的写法
以下写法虽可能生效,但不建议使用:
- :HTML5 已淘汰这种模拟 HTTP 头的方式,冗长且易出错;
- 或 :不符合 HTML5 规范,部分浏览器可能忽略;
- :自闭合写法在某些旧环境(如 IE)中识别不稳定,应省略斜杠。



















