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

新建文件默认编码为什么不是UTF-8
Notepad++ 新建空白文件(Ctrl+N)默认用 ANSI 编码,中文 Windows 下实际就是 GBK —— 这不是 bug,是为兼容旧程序做的历史设计。但你现在写代码、交 Git、存 Markdown,GBK 一保存就可能乱码或触发协作冲突。
关键点在于:UTF-8 选项在界面上有歧义:下拉菜单里选 “UTF-8” 实际等于 UTF-8-BOM(开头带 \xEF\xBB\xBF),而 Python/Shell/Node.js 脚本遇到它会直接报错,比如 SyntaxError: Non-UTF-8 code starting with '\xef'。
- 必须手动选择
UTF-8 without BOM,不是只看名字里有没有 “UTF-8” - 仅改下拉框没用,还得勾选
以UTF-8 无 BOM 格式编码—— 这个勾选项才是生效开关 - 改完不用重启,但已打开的标签页不会变,只影响下次 Ctrl+N
怎么让新建文件真正用 UTF-8 without BOM
路径是:设置 → 首选项 → 新建文档/默认目录。这里有两个独立动作,缺一不可:
-
新文档的默认编码下拉框选UTF-8 without BOM - 务必勾选
以UTF-8 无 BOM 格式编码
注意:这个设置只管 Ctrl+N 或菜单「文件 → 新建」,和拖进来的文件、双击打开的文件完全无关。状态栏右下角显示的是当前文件真实编码,不是你的设置是否启用 —— 即使设对了,刚新建的 Untitled 文件还没保存过,状态栏仍显示 ANSI,这是正常现象。
为什么改了设置还是显示 ANSI
最常见原因是 Notepad++ 的会话恢复机制在捣鬼:如果你上次退出前开着一堆标签页,它重启时会原样恢复,绕过所有新建设置。
- 验证是否真生效:先彻底退出 Notepad++(任务管理器里确认
notepad++.exe进程消失),再双击快捷方式启动,直接按Ctrl+N - 检查
设置 → 首选项 → 备份 → 会话是否勾选了记住当前会话—— 如果勾了,关掉它 - 便携版用户注意:真实配置存在
notepad++.exe同目录下的config.xml,界面修改有时不写入该文件
新建文件默认语言和扩展名绑定怎么配
新建的 Untitled 文件永远是 Normal text,因为没扩展名也没内容特征。想让它一建就是 Python/JSON/Markdown 高亮,不能靠“设默认语言”,得靠扩展名映射:
- 进
设置 → 首选项 → 语言菜单/文档类型,找到Text file双击 - 勾选
Apply to all files with extension:,输入框填txt(不要加点,不要写*.txt) - 确保下方
Default encoding for this language是UTF-8 - 对
.py、.json等,走设置 → Style Configurator → Language页面底部,往对应语言的User ext.框里加py json(空格分隔)
已打开的无扩展名文件不会自动刷新语言,必须手动切一次或关闭重开。真正的“默认”只对带扩展名的新建/打开文件有效。











