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

Notepad++新建文件默认编码为什么不是UTF-8
Notepad++新建文件(Ctrl+N)默认用系统ANSI编码,中文Windows就是GBK,不是bug,是为兼容老程序做的历史设计。它不关心你写Python还是Markdown,只按系统区域设置走——所以一新建就显示“ANSI”,保存含中文的文件后发给Linux同事,大概率打开就是乱码。
怎么让Ctrl+N新建的文件直接是UTF-8 without BOM
关键不是选“UTF-8”,而是选对选项并勾上开关:
- 菜单 → 设置 → 首选项 → 新建文档/默认目录
-
新文档的默认编码下拉框中,必须选UTF-8 without BOM(注意:选UTF-8= 带BOM,会出问题) - 必须勾选
以UTF-8 无 BOM 格式保存新文档——不勾,前面选了也无效 - 改完不用重启,下次按Ctrl+N立即生效
常见错误:看到下拉里有“UTF-8”就点它,结果文件开头多了\xef\xbb\xbf,Python脚本直接报SyntaxError: Non-UTF-8 code starting with '\xef'。
为什么改了设置,双击打开的.txt还是乱码
新建和打开是两套逻辑。上面设置只管Ctrl+N,不管已存在文件。.txt这类通用后缀默认走系统ANSI(GBK)解析,哪怕你设了UTF-8新建,打开别人发来的UTF-8 .txt照样乱。
解决方法是语言关联强制指定:
- 设置 → 首选项 → 语言菜单/文档类型
- 找到
Text file,双击进入 -
Apply to all files with extension:里填txt(不要加点,不要写*.txt) - 确保
Default encoding for this language是UTF-8 - 改完后,所有已打开的.txt标签页必须手动关闭再重新打开,新规则才生效
配置生效但新建文件仍显示ANSI?检查会话记忆
Notepad++重启时若恢复上次会话(多个标签页),会沿用旧文件的编码状态,导致你以为设置没生效。
验证是否真生效:
- 彻底退出Notepad++(任务管理器确认
notepad++.exe进程消失) - 重新启动,不打开任何文件,直接按Ctrl+N
- 看右下角状态栏是否显示
UTF-8,且新建文件输入中文、保存后在Git或Linux里打开无乱码 - 便携版用户注意:
config.xml在notepad++.exe同目录下,界面设置可能被该文件覆盖
真正起效靠的是三项联动:UTF-8 without BOM选项 + 勾选保存开关 + 关闭重开已打开的.txt标签页。漏掉任意一个,都会回到乱码起点。











