notepad++中文乱码需先识别原始编码再转换:依次尝试gbk/gb2312/gb18030,或通过撤销utf-8-bom转换查看状态栏提示;严禁直接“转为utf-8”,应先“以某编码打开”验证正确性,再执行转换。

Notepad++打开文件时中文显示为“锟斤拷”“烫烫烫”或方块符号,说明当前解码方式与文件真实编码不匹配,必须先识别原始编码再执行正确转换,否则反复切换编码会破坏文件字节流。
快速识别乱码文件的真实编码
点击菜单栏【编码】→【字符集】→【中文】,依次尝试【GBK】、【GB2312】、【GB18030】,观察文字是否恢复可读;若仍为乱码,再切换到【编码】→【转为UTF-8-BOM】→立即撤销(Ctrl+Z),此时状态栏会短暂显示原编码名称——这是Notepad++内部检测到的最可能编码,可信度高于手动盲猜。
对.srt、.txt、.log等纯文本文件,右键文件→【属性】→【详细信息】标签页,查看“编码”字段(部分Windows版本支持);若为空,则需依赖下一步。
这一步不能跳过:直接点【转为UTF-8】而不确认原始编码,等于用错误规则重写字节,文件将永久损坏,无法还原。
安全执行单文件编码转换
方法一:已知原始编码(如确认是GBK)
用Notepad++打开乱码文件 → 点击【编码】→【以UTF-8编码】(注意不是“转为”,是“以…”)→ 若文字仍乱,说明猜错;若显示正常,再点【编码】→【转为UTF-8】→保存。
方法二:不确定原始编码但文件较短(≤500行)
复制全部乱码内容 → 新建空白文件 → 点击【编码】→【以ANSI编码】→粘贴 → 若出现部分可读汉字,说明原始编码极可能是GBK系;若全为方块,尝试【以UTF-8编码】再粘贴。
方法三:含BOM标识的文件(如记事本保存的UTF-8)
打开文件后看状态栏右下角:若显示“UTF-8-BOM”却显示乱码,说明实际是GBK编码被误读为UTF-8-BOM,此时应选【编码】→【以GBK编码】→再【转为UTF-8】。
批量转换多个乱码文件(Python Script插件方案)
第一步:确认Python Script插件已安装并启用(Plugins → Python Script → Show Console,无报错即就绪)
第二步:在Notepad++中新建脚本(Plugins → Python Script → New script),命名为batch_convert.py
第三步:粘贴以下代码并修改三处路径:
import os
from Npp import notepad, console
TARGET_ENCODING = "UTF-8"
ROOT_DIR = r"D:\my_project" # ← 改成你的目标文件夹绝对路径
FILE_EXT = (".txt", ".sql", ".cpp", ".html") # ← 按需增删扩展名
DETECT_ENCODING = ["GBK", "GB2312", "UTF-8"] # ← 优先尝试的原始编码列表
def safe_convert(file_path):
for enc in DETECT_ENCODING:
try:
with open(file_path, "rb") as f:
content = f.read().decode(enc)
notepad.open(file_path)
notepad.runMenuCommand("Encoding", f"Character set/{enc}")
notepad.runMenuCommand("Encoding", "Convert to UTF-8")
notepad.save()
console.write(f"✓ {os.path.basename(file_path)} → {enc} → UTF-8\n")
break
except:
continue
第四步:保存脚本 → Plugins → Python Script → Scripts → batch_convert.py → 等待控制台输出完成提示。











