将包含 UTF-8 和 CP-1251 文件的目录批量转换为 UTF-8

将包含 UTF-8 和 CP-1251 文件的目录批量转换为 UTF-8

我有一个包含文件的目录,其中一些是 UTF-8,一些是 CP-1251。我想将 CP-1251 转换为 UTF-8,但不破坏 UTF-8 文件。

我尝试使用iconv -f cp1251 -t utf8 <...>,它适用于 CP-1251,但如果文件已经是 UTF-8,它也会被转换并且变得难以理解。

答案1

您可以使用以下命令获取既不是 UTF-8 也不是 US-ASCII 的文件列表:

file -0 -i *.txt | awk -F '\0' '$2 !~ /charset=(us-ascii|utf-8)$/ {print $1}'

答案2

我找到了一种方法来做到这一点转换

enconv -L bulgarian -x utf8 file.txt

它适用于 UTF-8 和 CP-1251 文件。

相关内容