乱码不是文件坏了,是解码方式用错了

同一份文件用不同编码打开,内容可能完全不同。关键是找到它原本的那一种。

看到乱码时先别急着改内容,先在编码菜单里逐一试用其它编码重新解读当前文件。这一步只改变解读方式,不改变文件本身,试错了重新选回来即可。

简体中文文本最可能落在三种编码上:带签名的 UTF-8、不带签名的 UTF-8,以及早期的本地编码。三种之外还有繁体中文与日文编码,遇到来源不明的文件也要试一下。

别人怎么用这些工具

从乱码到正确显示的处理顺序

  1. 在编码菜单里切换其它编码,观察内容是否恢复正常。
  2. 找到能正确显示的编码之后,确认是否需要保留原编码。
  3. 需要转成通用编码时,使用转换编码功能而不是重新打开另存。
  4. 转换之后检查文件开头是否多出看不见的签名字符。
  5. 保存并重新打开一次,确认显示与内容都正确。

编码菜单里几个选项的差别

一个是解读,一个是改写,别混用

操作作用对象使用场合
以某编码打开只改解读方式文件显示乱码时试错
转为某编码改写文件字节确认编码后统一格式
带签名的 UTF-8在文件开头写入标记需要被其它工具正确识别时
不带签名的 UTF-8不写标记脚本与代码文件常用

换行符的坑

编码相关的疑问

保存之后在别的软件里打开又乱码了

说明保存用的编码与对方预期的不同。对方如果只能识别本地编码,保存时切换成对应编码再存一次。

带签名的编码要不要一直开着

看用途。需要被其它程序识别编码时建议带签名,脚本与代码文件通常不带签名更安全。

批量转换多个文件怎么做

用查找替换的自定义功能搭配宏,或者借助命令行工具处理。先在副本上试,确认结果再应用到全部文件。

乱码的内容还能还原吗

如果原始文件还在,用正确编码重新打开即可。若已经保存覆盖,内容多半无法还原。

为什么同一个文件在两台机器上显示不同

两台机器上编辑器的默认编码设置不同。统一默认编码设置之后,显示就一致了。

处理来源不明的文本文件时,先用复制出来的副本试验编码,确认无误之后再处理原文件。