notepad++乱码主因是编码不匹配而非文件损坏;正确解决需先“以原始编码打开”再“转为utf-8”,新建文件默认编码设为utf-8并勾选“以utf-8无bom格式保存新文档”,.txt文件需通过语言关联强制指定utf-8编码。

Notepad++ 默认用系统 ANSI(比如中文 Windows 是 GBK)读写文件,不是 UTF-8 —— 这是乱码的根源,不是软件坏了,也不是文件损坏。
为什么“转为 UTF-8”后反而更乱?
因为 转为 UTF-8 是按当前标记的编码重新解释字节再写入 UTF-8;如果当前识别错了(比如文件实际是 GBK,但 Notepad++ 误标成 ANSI),这一步就把错解后的乱码再“固化”成 UTF-8 字节,彻底不可逆。
- 先确认原始编码:右下角显示
ANSI不代表就是 ANSI,点菜单「编码 → 字符集 → 中文 → GBK」试试,看中文是否立刻还原 - 正确流程是:「编码 → 以 GBK 格式编码」→ 文字正常 → 「编码 → 转为 UTF-8」→ 立即保存
- 如果不确定原始编码,优先试
GBK、UTF-8、UTF-8-BOM三种「以…格式编码」,别直接点「转为」
怎么让新建文件默认就是 UTF-8(无 BOM)?
这个设置只影响「新建」操作,不影响已打开文件。改完后下次点「新建」就生效,不用重启。
- 路径:
设置 → 首选项 → 新建文档/默认目录 -
新文档的默认编码下拉框选UTF-8(注意不是UTF-8-BOM) - 必须勾选
以UTF-8 无 BOM 格式保存新文档—— 这个勾选才是关键,不勾等于白设
怎么让 .txt 文件一打开就是 UTF-8?
仅改「新建默认编码」没用。.txt 是已有文件,Notepad++ 默认走 ANSI 解析,必须靠语言关联强制指定编码策略。
- 路径:
设置 → 首选项 → 语言菜单/文档类型 - 在右侧列表找到
Text file,双击它 - 勾选
Apply to all files with extension:,输入框填txt(不要加点,不要写*.txt) - 确保下方
Default encoding for this language是UTF-8 - 改完后,已打开的 .txt 标签页要手动关闭重开,新打开才生效
为什么勾了“以 UTF-8 格式打开所有文件”还是乱码?
这个选项只是让 Notepad++ 尝试用 UTF-8 解析未知编码文件,但对带 BOM 或明显非 UTF-8 的文件(如纯 GBK 二进制流)会自动 fallback 回 ANSI,所以不能替代语言关联。
- 它对新建文件无效,只影响「打开」动作
- 它无法覆盖已通过语言关联设定的编码(比如你给
Text file设了 GBK,那 .txt 就永远优先用 GBK) - 真正起效的组合是:语言关联 + 关联项里设
UTF-8+ 勾选该全局选项(双重保险)
最常被忽略的是:改完语言关联后,忘了关掉已打开的 .txt 标签页。它们仍维持旧解析逻辑,必须手动重开才能应用新规则。











