「Linux」- 识别文件编码、转换文件编码 @20210215
问题描述 当我们使用编辑器打开文件时,文件有时候会显示为乱码,也就是说编辑器没有使用正确的编码方式打开文件。此时,我们则需要切换编辑器的编码方式,使用正确的编码方式打开文件。 但是,我们应该如何得知文件的正确编码呢?(除了被告知以外) 该笔记将记录:在 Linix 中,如何获取文件的编码方式,以及如何进行文件编码转换。 问题原因 直接获取文件的编码是不太可能的。虽然文件头可能暗示了文件编码(但其实并没有类似的规范),但也有例外。例如,以 0xEF,0xBB,0xBF 开头的可能是 UTF-8 编码文件,但也可能是 ISO-8859-1 编码文件的  字符串。或者,其他的编码体系中的字符。 主流编辑器识别文件编码的方式是通过猜测 (即使 file 命令,有时也会给出错误的文件编码提示),所以编辑器里才会由 File Encoding 功能来切换编码的功能。 解决方案:获取文件编码 注意事项: 1)如上所述,工具获取文件编码的方式是通过猜测,因此工具很有可能会返回错误的文件编码,只是可靠的工具返回的结果更加可靠。 2)当工具猜测出编码之后,我们可以尝试使用该编码方式打开文件,以验证猜测结果是正确; 方案一、使用 file 命令 使用 file 命令,可以获取文件编码: # file Fontconfig_-_fonts.conf.txt Fontconfig_-_fonts