必须写,因为浏览器不会自动猜测编码,不设或设错会导致中文乱码、表单提交失败甚至页面拒绝解析;它须置于内最前位置,且值必须严格为"utf-8"。

UTF-8 是唯一该设的编码,不设或设错会导致中文乱码、表单提交失败、甚至部分浏览器拒绝解析整个页面。
为什么必须写 <meta charset="UTF-8">?
浏览器不会自动猜你用什么编码。没这行,它可能按系统默认(如 Windows 的 GBK)解码,一遇到中文就显示成 或一堆问号。更隐蔽的问题是:即使页面看起来正常,form 提交含中文的字段时,后端收到的可能是乱码字节——这不是 JS 或后端的问题,是 HTML 从第一行就“说错了话”。
- 必须放在
内,且越靠前越好(最好第二行,紧接后) - 不能写成
charset=utf8(缺横杠)、charset=UTF8(少短横)或charset="utf-8"(小写也可,但统一用大写更稳妥) - 不能写在
里,也不能包在<script></script>或注释中
<meta charset> 放错位置的典型错误现象
常见报错不会直接提示“编码错”,而是表现为:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
- 中文标题/段落显示为方块或问号,但开发者工具 Elements 面板里源码明明是中文(说明渲染层已损坏)
- 复制网页文字到记事本,粘贴出来是乱码(证明浏览器内部解码失败)
- 用 W3C Validator 检查时出现 Warning:
Character encoding was not declared. Proceeding with plain text. -
<textarea></textarea>里输入中文,提交后后端$_POST或req.body里对应字段为空或乱码
检查和验证是否生效的三步操作
别只看页面“好像能显示”,要实锤确认:
- 打开开发者工具(F12)→ 切到 Network 标签 → 刷新页面 → 点击
index.html→ 查看 Response Headers 中的Content-Type,应包含charset=utf-8 - 右键网页 → “查看页面源代码” → 搜索
charset,确认只有一处且值为"UTF-8" - 在
里加一行测试:<p>你好,世界!</p>,保存后强制刷新(Ctrl+F5),确保文字无异常
最容易被忽略的是:哪怕你用了 VS Code 并设置了文件保存编码为 UTF-8,如果 HTML 里没写 <meta charset="UTF-8">,浏览器依然可能按错误编码解析——因为文件编码和传输声明是两回事,缺一不可。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










