是否有任何程序可以通过编程方式将文件编码更改为UTF-8。我有1000个文件,我想在linux中以UTF-8格式保存它们。
感谢。
答案 0 :(得分:5)
iconv
会照顾它,像这样使用它:
iconv -f ISO88591 -t UTF8 in.txt out.txt
其中88591
是latin1
的编码,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