Notepad++中文乱码主因是编码误判,非文件损坏;应先用“以GB18030格式编码”验证可读性,再“转为UTF-8-BOM”保存,避免直接“转为UTF-8”固化乱码。

Notepad++打开文件显示中文乱码,**不是文件损坏,也不是编辑器出错,而是它用错了编码去解读字节**。直接点“转为UTF-8”大概率会让乱码固化,必须先让内容“可读”,再保存——顺序错了,就白忙活。
怎么判断当前识别的是什么编码?
看右下角状态栏,那里显示的是 Notepad++「当前认为」的编码,比如 ANSI、UTF-8 或 UTF-8-BOM。但它只是猜测结果,不等于文件真实编码。更可靠的判断方式是:
- 菜单栏点
编码→ 观察哪些项后面带勾(当前激活项) - 依次点击
以 UTF-8 格式编码、以 GBK 格式编码、以 GB18030 格式编码,看哪一项能让中文立刻变清晰 - 如果切换后标点仍异常(如英文引号变成中文“”,或括号错位),大概率是
UTF-8 无 BOM被误判为ANSI,优先试以 UTF-8 格式编码
为什么“转为UTF-8”会越转越乱?
因为 转为UTF-8 是把当前内存里已解码的内容,按 UTF-8 编码规则重新生成字节写入磁盘。如果当前显示还是乱码(比如你正用 ANSI 解析一个实际是 GBK 的文件),那内存里存的就是错的汉字映射,再转成 UTF-8,只是把错误“存档”了。
- 正确流程只有两步:
以 XXX 格式编码(验证可读)→转为 UTF-8(真实转换) -
以 UTF-8 格式编码不改文件,只改解析方式;转为 UTF-8会改文件字节,必须在文字已正常显示后操作 - 试完一种编码没效果,立刻按
Ctrl+Z撤回,别关窗口——关闭后状态重置,又要重来
GB2312 / GBK / GB18030 到底该选哪个?
它们都是中文编码,兼容范围不同:GB2312 最老,缺生僻字;GBK 向前兼容 GB2312;GB18030 是国标最新版,覆盖所有 Unicode 中文字符(包括户籍用生僻字)。实操中:
- 优先试
GB18030—— Windows 中文系统下绝大多数旧文本都适用 - 如果
GB18030显示正常,下一步就选转为 UTF-8-BOM(不是无 BOM),BOM 字节EF BB BF能帮 VS Code、Sublime、甚至记事本后续自动识别编码 - 避免点
UCS-2 BE/LE,那是记事本老式双字节 Unicode,现在极少遇到,点了反而更乱
保存后还是乱码?检查这三个干扰点
如果按上述流程操作完仍反复乱码,问题可能不在 Notepad++ 本身:
- 文件被其他程序(Excel、微信、某些 IDE)静默另存过,编码已变,确认来源再处理
- 行尾符混用(
\r\nvs\n)虽不影响显示,但某些工具会因此跳过 BOM 判断,导致编码识别失败 - 禁用 Python Script、Converter 等插件再试——它们有时劫持编码逻辑,让菜单行为失常
最稳路径永远是:以 GB18030 格式编码 → 确认中文清晰 → 转为 UTF-8-BOM → Ctrl+S。BOM 就三个字节,但它决定了下一次别人用啥编辑器打开,还能不能认出这是 UTF-8。

















