在Windows 10上将一个用阿拉伯语写成的文件夹中的所有文件一次转换为utf-8 fomat?

时间:2018-02-10 09:06:40

标签: utf-8

有没有办法在Windows 10上一次将用阿拉伯语编写的文件夹中的所有文件转换为utf-8 fomat?

我试过这个,但它不起作用:

find . -type f -exec bash -c 'iconv -f iso-8859-1 -t utf-8 "{}" > /path/to/destination/"{}"' \;

1 个答案:

答案 0 :(得分:0)

阿拉伯语不能用ISO-8859-1写成;它是一种传统的8位编码,仅适用于大致适合西欧语言子集的拉丁字符子集。

Wikipedia建议使用ISO-8859-6Windows codepage 1256作为8位阿拉伯语的合理编码候选者。

一旦找到正确的编码,你的命令基本上就可以工作。

如果您有子目录,当您尝试写入不存在的子目录中的文件时,您当前的尝试将失败。如果您没有拥有任何子目录,find在这里真的是多余的。

for file in ./*; do
    iconv -f ENCODING -t utf-8 "$f" >/path/to/destination/"$f"
done

这也适用于处理子目录;在尝试写入目的地之前,可以将此find解决方案调整为mkdir -p "/path/to/destination/$(dirname "$f")"