编码问题是中文用户最常遇到的坑。Notepad++ 对编码的支持非常完整,本页把「编码转换、乱码修复、BOM、行尾符、Unicode 输入」整合讲解。
一、常见编码
UTF-8 国际通用、兼容中文;GBK/GB2312 是中文 Windows 传统编码;ANSI 在中文系统上实际就是 GBK。跨平台/跨软件时编码不一致就会导致乱码。
二、转换为 UTF-8
打开文件后,「编码 → 转为 UTF-8 编码(无 BOM)」即可;另存为新文件时也可在对话框选编码。建议把所有文件统一成 UTF-8 无 BOM。
三、中文乱码怎么办
乱码通常是「用错编码打开」。先在「编码」菜单逐个切换 GBK / UTF-8 / 系统默认,直到文字正常显示,再「转为 UTF-8」重新保存。若已损坏严重,尝试「编码 → 自动检测」。详见 常见问题。
四、编码自动检测
「设置 → 首选项 → 新建」,可设定默认新建文件编码为 UTF-8;并开启编码自动检测,降低手动切换频率。
五、UTF-8 BOM 问题
BOM(EF BB BF)在 Windows 下无害,但会让 PHP、Python 等脚本报错或输出乱码。统一使用「UTF-8 无 BOM」最稳妥;已有 BOM 可用「编码 → 转为 UTF-8(无 BOM)」去除。
六、行尾符 CRLF / CR / LF
Windows 用 CRLF(\r\n),Unix/Linux/macOS 用 LF(\n),老 macOS 用 CR。混用会导致脚本执行异常。用「编辑 → 文档格式转换」一键统一;或在状态栏点击行尾符图标切换。
七、插入 Unicode 与特殊字符
「编辑 → 特殊字符」可插入不间断空格、零宽字符等;「编码 → 字符面板」或输入 Unicode 码点可插入任意符号,适合录入罕见字符。
八、显示不可见字符
「视图 → 显示符号 → 显示空格与制表符 / 显示行尾符」,让空格、Tab、换行现形,排查缩进与换行问题一目了然。
九、最佳实践
团队统一 UTF-8 无 BOM;提交代码前确认行尾符;用 显示空白字符 杜绝 Tab/空格混用。
十、编码与格式联动
处理 JSON、CSV、XML 时,编码与符号必须同时正确:半角引号、统一换行、正确中文编码,缺一不可,否则解析必报错。乱码往往是第一个信号,顺着它先修编码,再修格式。
十一、一句话记住
乱码先别存,换编码重载,确认无误再另存 UTF-8。把它贴在显示器边,能省下无数抓狂时刻。编码问题九成靠习惯规避,剩下一成靠本页方法救回。
乱码自救流程
打开文件出现方块或问号时,先不要编辑保存,否则乱码会被固化。正确做法是关闭文件,从"编码"菜单逐一尝试"以 UTF-8 打开""以 ANSI 打开""以中文简体(GB2312/GBK)打开",哪一个能正常显示就用哪一个,确认无误后再"以 UTF-8 格式保存"完成转码。Notepad++ 的"编码"菜单支持"转换为 UTF-8"(带 BOM 或不带),中文站点推荐统一用"UTF-8 无 BOM",避免 PHP 等语言因 BOM 头报错。
批量转码可用"文件→打开文件夹作为工作区"后逐个处理,或在插件辅助下批处理。判断原编码的窍门:GBK 文本在 UTF-8 视角下常出现连续"涓"类汉字乱码,而 UTF-8 误当 ANSI 打开则多为单字节乱字符。
发布前的编码规范
做网页或提交代码前,务必统一为 UTF-8 无 BOM,并在 HTML 的 <head> 声明 <meta charset="utf-8">,否则浏览器可能用错误编码渲染。数据库导出、接口返回的编码也要前后端一致,否则即便文件本身正确,显示层仍会乱码。