先看当前的编码
Notepad++ 在右下角的状态栏显示当前用哪种编码读取文件,例如 UTF-8、UTF-8-BOM 或 ANSI。在简体中文 Windows 上,ANSI 指的就是 GBK。编码 菜单中有两类选项,很容易混淆:
- 菜单上半部分的 ANSI、UTF-8、UTF-8-BOM 等:只是用另一种编码重新读取现有的字节,文件本身不变。
- 菜单下半部分以“转为”开头的选项:把文字按新的编码重新写入,保存后文件就改变了。
- 菜单中的字符集子菜单:可以指定 GB2312、Big5 等具体编码来读取文件。
情况一:中文变成浣犲ソ
文件是 UTF-8,Notepad++ 却按 ANSI(GBK)读取了。在 编码 菜单中选择 UTF-8,中文马上就能正常显示。这时千万不要选“转为 UTF-8”:那样会把 浣犲ソ 这些乱码当成真正的文字保存下来。
情况二:出现 xD6 这样的黑块
文件是 GBK(ANSI),却被当成 UTF-8 读取,无法解读的字节就显示成 xD6 这样的黑块。先在 编码 菜单中选择 ANSI(或在字符集中选择 GB2312),让中文正常显示,再选择转为 UTF-8,保存后文件就是 UTF-8 了。不想手动操作,也可以用 GBK 转 UTF-8 直接转换。
情况三:乱码已经保存在文件里
如果选择 UTF-8 之后仍然显示 浣犲ソ,说明乱码已经被保存进文件了。这时菜单里的任何选项都不能可靠地解决,尤其是正常的行和乱码的行混在一起时。把文件拖到上面的框中:Mojibuster 只修复乱码的部分,并显示每一处改动。
乱码
缈昏瘧宸茬粡妫€鏌ワ紝鍖椾含涓婃捣娣卞湷鍏ㄩ儴姝g‘
修复后
翻译已经检查,北京上海深圳全部正确
新文件一律用 UTF-8
在 Notepad++ 的首选项中,把新建文件的默认编码设为 UTF-8。要用 Excel 打开的文件,选 UTF-8-BOM 更好,详见 Excel 打开 CSV 乱码。给 Windows PowerShell 5.1 用的脚本也需要 BOM,参见 PowerShell 中文乱码。
常见问题
UTF-8 和 UTF-8-BOM 有什么区别?
两者保存文字的方式完全相同。UTF-8-BOM 会在文件开头多写 3 个看不见的字节,Excel 和一些旧软件据此识别 UTF-8。
为什么 Notepad++ 有时会识别错编码?
没有 BOM 的文件里不包含编码信息,Notepad++ 只能猜。文件越短、中文越少,越容易猜错。
能一次转换多个文件吗?
Notepad++ 本身只能借助宏或插件。在 Mojibuster 中可以把文件一个接一个地拖进来,每个只需几秒钟。