如何使用 *nix 命令行工具将多个文件转换为 UTF-8 编码?

如何使用 *nix 命令行工具将多个文件转换为 UTF-8 编码?

可能重复:
批量转换文件的编码或行尾

我有一堆文本文件,想将它们从任何给定的字符集转换为 UTF-8 编码。

是否有任何命令行工具或 Perl(或您选择的语言)一行程序可以用来集体完成此操作?

答案1

iconv 可以在许多字符编码之间进行转换。因此,添加一些 bash 魔法,我们可以写

for file in *.txt; do
    iconv -f ascii -t utf-8 "$file" -o "${file%.txt}.utf8.txt"
done

这将运行iconv -f ascii -t utf-8到每个以 结尾的文件.txt,将重新编码的文件发送到具有相同名称但.utf8.txt以 而不是结尾的文件.txt

这实际上并不会对您的文件产生任何影响(因为 ASCII 是 UTF-8 的子集),但可以回答您关于如何在编码之间进行转换的问题。

相关内容