如何以编程方式更改linux的文件编码?

bee*_*ern 2 linux utf-8

是否有任何程序可以通过编程方式将文件编码更改为UTF-8.我有1000个文件,我想在linux中以UTF-8格式保存它们.

谢谢.

Ant*_*ine 5

iconv 将照顾,使用它像这样:

iconv -f ISO88591 -t UTF8 in.txt out.txt
Run Code Online (Sandbox Code Playgroud)

这里88591是编码latin1,最常见的8位编码之一,这可能(或不)是你的输入编码.

如果您不知道输入字符集,可以使用标准file命令或基于python的方法检测它chardet.例如:

iconv -f $(file -bi myfile.txt | sed -e 's/.*[ ]charset=//') -t UTF8 in.txt out.txt
Run Code Online (Sandbox Code Playgroud)

您可能想要做一些比这个内容更强大的东西,比如在编码未知时不处理文件.

从这里开始迭代多个文件,你可以做类似的事情

find . -iname *.txt -exec iconv -f ISO88591 -t UTF8 {} {} \;
Run Code Online (Sandbox Code Playgroud)

我没有检查这个,所以你可能想谷歌iconv找到,在这里读取它们,或者只是阅读他们的手册页.