Notepad++ 中文乱码的解决方法

Notepad++ 打开文件后中文变成 浣犲ソ,或者出现 xD6、xD0 这样的黑底小方块?说明当前选择的编码和文件不一致。通常只要在 编码 菜单中选对一项就能解决,前提是分清该用哪一项。

支持文本和以下文件:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

例如 Excel 导出、数据库备份、字幕或网站代码。

修复

  1. 拖入文件或粘贴文本
  2. 自动修复
  3. 复制或下载
或把文件拖到这里
  • 无需上传。 文件直接在浏览器中修复,不会离开你的设备。

  • 服务器位于欧盟。 Mojibuster 运行在 芬兰(欧盟)的服务器上,受《通用数据保护条例》(GDPR)约束。 GDPR 全文(EUR-Lex,英文)

先看当前的编码

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 中可以把文件一个接一个地拖进来,每个只需几秒钟。

更多指南