VS Code新建index.html双击打不开,因默认保存为无后缀纯文本且编码非UTF-8;须手动输入完整文件名、右下角选“Save with Encoding”设为UTF-8,并确认扩展名显示正常。

用 HTML 编辑器新建并保存网页文件,关键不是“能不能存”,而是“存完能不能被浏览器正确解析”——常见问题几乎都出在扩展名、编码、路径这三处。
VS Code 新建 index.html 时为什么双击打不开?
VS Code 默认新建的是无后缀的纯文本文件,直接 Ctrl+S 会按系统默认编码(如 Windows 的 ANSI)保存,且不带 .html 后缀。浏览器看到非 .html 扩展名或非 UTF-8 编码,可能只当普通文本打开。
- 新建文件后,先在右下角状态栏点击编码(如 “UTF-8” 或 “GBK”),选 “Save with Encoding” → “UTF-8”
- 保存时务必手动输入完整文件名,例如
index.html;不要依赖自动补全或重命名 - 确认右下角显示 “LF”(Unix 换行符)更稳妥,Windows 系统下若显示 “CRLF” 通常也兼容,但避免混用
- 首次保存后,VS Code 会记住该文件类型,后续 Ctrl+S 即按 HTML 模式处理
Emmet 快捷生成的模板里缺 <meta charset="UTF-8"> 怎么办?
VS Code 的 Emmet 默认缩写 ! 生成的 HTML5 模板已包含 <meta charset="UTF-8">,但部分旧版配置或自定义模板可能遗漏。一旦缺失,中文会乱码,即使文件本身是 UTF-8 编码。
- 检查生成的
<head>内是否已有<meta charset="UTF-8">;没有就手动补上 - 不要只靠编辑器“看起来正常”来判断:用记事本另存为 UTF-8 再对比,或用
file -i page.html(Linux/macOS)验证实际编码 - 如果用了
<meta http-equiv="Content-Type" content="text/html; charset=GBK">这类旧写法,必须删掉,否则覆盖真实编码声明
保存后双击浏览器显示源码而非渲染页面?
这是典型的文件未被识别为 HTML 的表现,根本原因通常是扩展名没生效或被系统隐藏了。
立即学习“前端免费学习笔记(深入)”;
- 在资源管理器中开启“文件扩展名”显示(Win:查看 → 勾选“文件扩展名”;macOS:访达 → 显示 → 显示文件扩展名)
- 确认文件名确实是
index.html,而不是index.html.txt或index.htm.txt - 不要右键 → 重命名改后缀,而应右键 → 属性 → 重命名时连同原后缀一起删掉再输入
.html - 某些编辑器(如老版 Dreamweaver)保存时若未指定格式,可能默认存为
.htm,虽可运行,但建议统一用.html
真正容易被忽略的点是:保存动作本身不保证编码和扩展名同时正确。哪怕你用最顺手的编辑器,每次新建 .html 文件后,都该低头看一眼右下角的编码标识和文件名结尾——这两个地方错一个,整个文件就废了一半。



















