VS Code改默认保存编码需在设置中将files.encoding设为"utf8"(小写无横线),并关闭files.autoGuessEncoding以防误判;修改后新建文件默认UTF-8无BOM保存,已打开文件需手动Reopen with Encoding切换。

VS Code 怎么改默认保存编码
VS Code 新建文件默认是 UTF-8,但打开已有文件时会按文件 BOM 或内容自动探测编码,可能误判为 GBK —— 这是乱码最常见源头。Save with Encoding 只影响当前文件,不改全局默认。
真正要改默认行为,得进设置:
- 打开
Settings(Ctrl+,),搜files.encoding - 把
Files: Encoding改成utf8(注意不是utf-8,选项里写的就是小写无横线) - 顺手把
Files: Auto Guess Encoding关掉 —— 自动猜错比不猜还危险 - 如果项目必须用 BOM(极少数老系统集成场景),再开
Files: Insert Final Newline和Files: Trim Trailing Whitespace配合避免干扰
改完后新建文件一定以 UTF-8 无 BOM 保存;已打开的 GBK 文件不会自动转码,需手动选 Reopen with Encoding → UTF-8 再另存。
Notepad++ 编辑器编码默认值在哪调
Notepad++ 没有“全局默认保存编码”开关,它的行为由两个独立设置控制:新建文件用什么编码、以及打开文件时怎么识别。
立即学习“前端免费学习笔记(深入)”;
关键操作路径:
- 菜单栏
设置 → 首选项 → 新建 → 编码:这里选UTF-8(不是UTF-8-BOM) - 同页下方
打开 → 以 UTF-8 格式打开所有文件:勾上它,否则打开无 BOM 的 UTF-8 文件仍可能被当 ANSI 解析 - 关掉
自动检测编码(尤其别信“从文件头检测”——HTML 的<meta charset>对 Notepad++ 完全无效)
⚠️ 注意:改完设置后,之前已打开的标签页不会刷新编码,必须关闭重开才生效。
Sublime Text 保存编码怎么固定为 UTF-8
Sublime Text 的编码逻辑最隐蔽:它默认用系统 locale(Windows 简体中文下就是 GBK)读取无声明文件,且新建文件不带 BOM,导致 <meta charset="UTF-8"> 形同虚设。
必须做三件事:
- 菜单
File → Save with Encoding → UTF-8(仅对当前文件) - 菜单
Preferences → Settings,在右侧用户设置里加这行:"default_encoding": "UTF-8" - 同样在设置里加:
"fallback_encoding": "UTF-8"(防止自动回退到系统编码) - 删掉所有可能存在的
"detect_indentation"相关干扰项 —— 缩进检测有时会连带触发错误编码识别
改完重启 Sublime,新建文件和打开无 BOM 的 UTF-8 文件都会强制用 UTF-8,不再依赖文件头或 meta 标签。
为什么改了编辑器默认编码,HTML 还是乱码
因为浏览器根本不看编辑器设置。它只认三样东西,按优先级排序:HTTP Content-Type 响应头 > <meta charset> 标签 > 系统默认编码。编辑器只管“字节怎么写进硬盘”,不参与“浏览器怎么读这些字节”。
典型断点排查顺序:
- 用
curl -I your.html或浏览器 DevTools 的 Network 面板,确认响应头有没有Content-Type: text/html; charset=utf-8 - 检查 HTML 文件开头 1024 字节内,
<meta charset="UTF-8">是否在<title></title>之前、且没被注释或 JS 干扰 - 用
file -i your.html(Linux/macOS)或 PowerShell 的Get-Content your.html -Encoding Byte | Select -First 3确认文件实际字节是否为 UTF-8(无 BOM 是ef bb bf开头,有 BOM 是纯ef bb bf)
BOM 是最容易被忽略的隐性开关:VS Code 默认存无 BOM,Sublime 默认也无 BOM,但某些旧版 IE 或内网系统要求必须有 BOM —— 这时候得手动加,不能靠编辑器“默认”解决。



















