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

时间:2014-08-01 09:44:40

标签: linux utf-8

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

感谢。

2 个答案:

答案 0 :(得分:5)

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

iconv -f ISO88591 -t UTF8 in.txt out.txt

其中88591latin1的编码,you can detect it是最常见的8位编码之一,可能(或不是)是您的输入编码。

如果您不知道输入字符集,chardet使用标准file命令或基于python的{{3}}。例如:

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

您可能希望做一些比这个内容更强大的内容,例如在编码未知时不要处理文件。

从这里开始迭代多个文件,您可以执行类似

的操作
find . -iname *.txt -exec iconv -f ISO88591 -t UTF8 {} {} \;

我没有检查过这个问题,因此您可能需要google iconv查找,在此处阅读,或者只是阅读他们的手册页。

答案 1 :(得分:2)

iconv是工作的工具。

iconv -f original_charset -t utf-8 originalfile > newfile