经常遇到 txt 文件在 Mac 上显示乱码, 如图所示.
解决
1. 单个乱码文件的转换
使用 Shell 的 iconv
命令来转换文件编码, 其语法是:
iconv -f encoding -t encoding sourcefile > destinationfile
例如, 想把 GB18030 编码的 A 文件( txt 格式), 转换为 UTF-8 编码,并存入文件 B:
iconv -f GB18030 -t UTF8 A.txt > B.txt
注意:
如果文件名带"空格", 在命令行操作时, 需要在"空格"前面加上"转义字符", 比如 "my file.txt" 文件在命令行中需要用
my file.txt
来指代.
如果你不理解"转义字符", 那么建议你先把文件名中的"空格"去掉, 或者直接使用"下划线"替代"空格". 比如, 把 "my file.txt" 文件改名为 "my_file.txt"
PS. 如何得知源文件的编码格式?
可以尝试使用file --mime-encoding
命令来查看源文件的编码格式.
同时, 根据自己的尝试和网上的资料, 大部分乱码的 txt 文件编码为GB18030
.
2. 乱码文件的批量转换
将需要转码的 txt 文件放在一个文件夹中, 在命令行下, 进入文件夹后执行:
find *.txt -exec sh -c "iconv -f GB18030 -t UTF8 {} > {}.txt" ;
其作用是: 查找后缀为 txt 的文件,将其编码从 GB18030 转化为 UTF8
作者:patiencing
链接:https://www.jianshu.com/p/f55ddf1e9839
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。