如何从文本文件中删除非UTF-8字符

我有一堆用utf-8编码的阿拉伯文,英文,俄文文件。 试图用Perl脚本处理这些文件,我得到这个错误:

Malformed UTF-8 character (fatal) 

手动检查这些文件的内容,我发现了一些奇怪的字符。 现在我正在寻找一种方法来自动从文件中删除这些字符。

有没有办法呢?

这个命令:

 iconv -f utf-8 -t utf-8 -c file.txt 

将清理你的UTF-8文件,跳过所有的无效字符。

 -f is the source format -t the target format -c skips any invalid sequence 

你的方法必须逐字节地阅读,并且完全理解和欣赏字符的字节结构。 最简单的方法是使用一个编辑器来读取任何东西,但只输出UTF-8字符。 文本板是一种select。

 cat foo.txt | strings -n 8 > bar.txt 

会做这项工作。