我有一堆用utf-8编码的阿拉伯文,英文,俄文文件。尝试使用Perl脚本处理这些文件时,出现以下错误:
Malformed UTF-8 character (fatal)
手动检查这些文件的内容,发现它们中有一些奇怪的字符。现在,我正在寻找一种自动从文件中删除这些字符的方法。
反正有做吗?
我有一堆用utf-8编码的阿拉伯文,英文,俄文文件。尝试使用Perl脚本处理这些文件时,出现以下错误:
Malformed UTF-8 character (fatal)
手动检查这些文件的内容,发现它们中有一些奇怪的字符。现在,我正在寻找一种自动从文件中删除这些字符的方法。
反正有做吗?
Answers:
该命令:
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
pbpaste | iconv -f utf-8 -t -utf-8 -c | pbcopy
。我还创建了一个带有全局快捷方式的Alfred工作流,该快捷方式用于通过定位来剥离所有特殊字符ascii
。
iconv -f utf-8 -t ascii//TRANSLIT
解决了我的问题。它将卷曲的引号转换为直接的引号。
-o
不同的输出文件
您的方法必须逐个字节地读取,并且必须完全理解并欣赏字节的按字节构造的字符。最简单的方法是使用将只读取输出UTF-8字符的任何内容的编辑器。文本板是一种选择。