notepad++将文件转为utf-8需先正确识别原始编码(如gbk),再执行“编码→转为utf-8”,否则会因错解字节导致乱码;批量转换须先全部打开文件,再通过“在文件中查找→批量替换→应用到所有打开文档”触发统一转码并手动保存。

Notepad++里怎么把文件转成UTF-8编码
直接在菜单栏点「编码」→「转为 UTF-8 编码」就行,不是「以 UTF-8 编码格式打开」——后者只是临时用 UTF-8 解析当前乱码文件,不改文件本身;前者才会真正重写文件内容并保存为 UTF-8。
为什么转完还是乱码?常见原因和对应操作
乱码往往不是转换失败,而是原始编码识别错了。Notepad++ 默认用系统 ANSI(比如中文 Windows 是 GBK)打开旧文件,如果你手动点了「转为 UTF-8 编码」,它会按当前识别的编码(如 GBK)去解码字节,再用 UTF-8 重新编码——如果原始其实是 UTF-8 with BOM 或 ISO-8859-1,这步就出错。
- 先试「编码」→「字符集」→ 挨个选可能的原始编码(如
GB2312、GBK、UTF-8-BOM),看文字是否正常显示 - 显示正常后,再点「编码」→「转为 UTF-8 编码」
- 如果原始是纯 ASCII 内容但被误判为 GBK,转 UTF-8 后可能多出
0xEF 0xBB 0xBF(BOM),部分工具不兼容,可选「转为 UTF-8 无 BOM 编码」
批量转换多个文件的实操要点
Notepad++ 自带的「批量编码转换」功能藏得有点深,且只对已打开的文件生效:
- 先把所有要转的文件拖进 Notepad++(或用「文件」→「打开」多选)
- 确保每个文件都正确识别了原始编码(必要时手动设为
GBK或UTF-8-BOM) - 按
Ctrl+Shift+F打开「在文件中查找」,切换到「查找全部」标签页 → 点右下角「批量替换」按钮 - 别真输查找/替换内容!关键是点「关闭」前勾选「应用到所有打开的文档」,然后点「确定」——这时 Notepad++ 会强制把所有已打开文件统一转成当前活动文档的编码(即你最后点过的「转为 UTF-8 编码」所设定的目标)
- 最后全选标签页 → 右键「全部保存」
保存后仍被其他程序当错编码读?注意这三点
Notepad++ 转完保存的是标准 UTF-8 字节流,但外部程序是否能正确读取,取决于它们自己的编码探测逻辑:
- Windows 记事本默认不识别无 BOM 的 UTF-8,会当成
ANSI解析 → 若需兼容记事本,务必用「转为 UTF-8-BOM 编码」 - Python 3 读文件时若没指定
encoding='utf-8',可能依赖系统 locale,导致读成GBK→ 必须显式传参 - Git 提交时若文件含 BOM,某些 diff 工具会把 BOM 当作内容变更 → 推荐统一用「UTF-8 无 BOM」,并在项目根目录加
.gitattributes声明* text=auto eol=lf
有些脚本或配置文件对 BOM 敏感,比如 #!/usr/bin/env python3 开头的 Python 文件,开头多了 BOM 就直接报错 SyntaxError: Non-UTF-8 code starting with '\xef'——这种时候,连「转为 UTF-8 编码」都不行,必须用「转为 UTF-8 无 BOM 编码」。











