notepad++ 默认用 ansi 编码打开 txt 文件易致乱码,需同时设置“新建文档默认编码为 utf-8”和“语言关联中 text file 关联 txt 扩展名并设默认编码为 utf-8”,且修改后须关闭重开已打开的 txt 标签页。

Notepad++ 默认打开 TXT 文件时用的是 ANSI 编码,不是 UTF-8,也不是带 BOM 的 UTF-8 —— 这会导致中文乱码、Git 提交异常、脚本执行失败等问题。改设置不难,但关键在顺序和细节。
怎么让 Notepad++ 默认用 UTF-8(无 BOM)打开所有 .txt 文件
这不是改“默认编码”那么简单,因为 Notepad++ 的“默认编码”只影响新建文件;对已存在文件,它优先按文件实际编码或上次保存时的编码读取。真正起作用的是“语言格式关联”+“默认编码策略”组合。
- 打开 设置 → 首选项 → 新建文档/默认目录,把
新文档默认编码改成UTF-8(不是UTF-8-BOM) - 再进 设置 → 首选项 → 语言菜单/文档类型,找到右侧列表里的
Text file,双击它,弹出窗口里勾选Apply to all files with extension:,然后在输入框填txt(注意不要加点,也不用写*.txt) - 确保下方
Default encoding for this language是UTF-8
为什么关联系统 txt 文件后还是乱码
Windows 右键“打开方式”关联只是让 Notepad++ 启动并加载文件,不控制它用什么编码读——如果文件本身是 UTF-8 但没 BOM,而 Notepad++ 没提前知道该用 UTF-8 解析,就会误判为 ANSI。
- 必须先完成上一步的语言关联(
Text file→txt),否则关联后仍走默认 ANSI 解析流程 - 已有乱码文件可手动点击右下角编码栏,选
Encode in UTF-8,再 另存为(不是“保存”),覆盖原文件 - 若想一劳永逸,可安装插件
Python Script+ 脚本自动转码,但普通用户不建议折腾
关联 Windows 系统级 txt 打开方式(非管理员权限也能做)
Notepad++ 安装时勾选“关联文件”不一定生效,尤其在 Win10/11 上常被系统重置。推荐手动注册表方式,安全且一次到位。
- 以管理员身份运行 Notepad++,点 设置 → 关联文件类型
- 勾选
.txt,点击确认—— 这会自动写注册表HKEY_CURRENT_USER\Software\Classes\.txt,不影响系统全局设置 - 验证:在资源管理器中右键任意
.txt文件 → “打开方式” → 应显示 Notepad++ 为首选,且图标已更新 - 如果没出现,重启资源管理器(任务管理器 → 重启
explorer.exe)或注销重登
最易忽略的一点:修改完语言关联后,必须关闭所有已打开的 .txt 标签页再重新打开,旧标签页不会自动刷新编码策略。另外,某些企业环境组策略会锁定文件关联,此时只能靠快捷方式参数 -noPlugin -multiInst 绕过限制,但那是另一回事了。











