仅将非utf-8文件转换为utf-8

问题描述 投票:1回答:1

我有一组md文件,其中一些是utf-8编码的,而其他则不是(实际上是windows-1256。]]

我只想将非utf-8文件转换为utf-8。

以下脚本可以部分

进行工作:
for file in *.md;
do
    iconv -f windows-1256 -t utf-8 "$file" -o "${file%.md}.🆕.md";
done

我仍然需要从此过程中排除原始utf-8文件,(也许使用file命令?)。尝试以下命令以了解我的意思:

file --mime-encoding *

[注意,尽管file命令不够智能,无法检测非utf-8文件的正确字符集,但在这种情况下,它可以区分utf-8和非utf-8文件就足够了。] >

提前感谢您的帮助。

我有一组md文件,其中一些文件是utf-8编码的,而其他文件则不是(实际上是Windows-1256)。我只想将非utf-8文件转换为utf-8。以下脚本可以部分完成此任务:...

unicode utf-8 character-encoding arabic iconv
1个回答
0
投票

例如,您可以使用if语句:

if file --mime-encoding "$file" | grep -v -q utf-8 ; then
    iconv -f windows-1256 -t utf-8 "$file" -o "${file%.md}.🆕.md";
fi
© www.soinside.com 2019 - 2024. All rights reserved.