notepad++新建文件默认编码为ansi(中文windows即gbk),是为兼容旧程序的设计,并非bug;需在“设置→首选项→新建文档/默认目录”中将“新文档的默认编码”设为utf-8(非utf-8-bom)并勾选“以utf-8无bom格式保存新文档”才生效。

Notepad++ 新建文件默认编码不是 UTF-8,这是设计使然,不是 bug —— 它默认用系统 ANSI(中文 Windows 就是 GBK),为兼容老程序。但你现在写代码、交协作稿、存 Git,必须改成 UTF-8(无 BOM)。
怎么改新建文件的默认编码
这个设置只影响你按 Ctrl+N 或菜单「文件 → 新建」产生的空文件,不影响已打开的文件。
路径是:设置 → 首选项 → 新建文档/默认目录
-
新建文档的默认编码下拉框选UTF-8(注意:不是UTF-8-BOM) - 必须勾选
以UTF-8 无 BOM 格式保存新文档—— 不勾这个,前面选了也白选 - 改完不用重启,下次新建就生效
为什么不能选 UTF-8-BOM
UTF-8-BOM 会在文件开头写入三个字节 EF BB BF,看似无害,实则在多个场景会出问题:
- Python 脚本如果带 shebang(
#!/usr/bin/env python3),开头多这三个字节会触发SyntaxError: Non-UTF-8 code starting with '\xef' - Bash / Shell 脚本执行时报
bad interpreter - Node.js 读取时可能解析失败,尤其用
fs.readFileSync未指定编码时 - Git diff 里会多出不可见字符,协作时容易引发争议
改了还是不生效?检查这两个隐藏点
很多人设完发现新建文件右下角还是显示 ANSI,大概率是被 Notepad++ 的会话恢复机制覆盖了。
- 完全退出 Notepad++:任务栏右键 → 退出,再进任务管理器确认
notepad++.exe进程已结束 - 别从上次残留标签页里点「新建」,要双击快捷方式或从开始菜单启动后,直接按
Ctrl+N - 检查
设置 → 首选项 → 备份 → 会话是否勾选了「记住当前会话」——如果勾了,它会优先恢复上次状态,绕过你的新建设置
扩展名没关联时 .txt 仍用 ANSI 怎么办
仅改「新建默认编码」对已有后缀(如 .txt)无效。Notepad++ 打开 .txt 时,默认走语言关联规则,而非新建设置。
要让它一打开 .txt 就用 UTF-8:
设置 → 首选项 → 语言菜单/文档类型- 右侧列表找到
Text file,双击 - 勾选
Apply to all files with extension:,输入框填txt(不要加点,不要写*.txt) - 确保下方
Default encoding for this language是UTF-8 - 已打开的
.txt标签页必须手动关闭重开,新规则才生效
最常被忽略的,就是改完语言关联后,忘了关掉正在开着的 .txt 文件 —— 它们永远维持旧解析逻辑,不重开就白配。











