我有一堆阿拉伯语、英语和俄语文件,它们的编码是utf-8。当我尝试使用Perl脚本处理这些文件时,我收到了以下错误信息:
Malformed UTF-8 character (fatal)
我手动检查了这些文件的内容,发现其中有一些奇怪的字符。现在我正在寻找一种自动从文件中删除这些字符的方法。
有没有什么办法可以做到呢?
我有一堆阿拉伯语、英语和俄语文件,它们的编码是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
pbpaste | iconv -f utf-8 -t -utf-8 -c | pbcopy
。我还创建了一个 Alfred 工作流,其中包括一个全局快捷键,用于通过目标为 ascii
来去除所有特殊字符。 - Lenar Hoyticonv -f utf-8 -t ascii//TRANSLIT
解决了我的问题。它将卷曲引号转换为直引号。 - Colonel Panic-o
用于指定不同的输出文件。 - codaamok你的方法必须逐字节读取,并完全理解和欣赏字符的逐字节构造。最简单的方法是使用一个编辑器,它可以读取任何内容,但只输出UTF-8字符。Textpad是其中之一。
这里或其他类似问题的方法都对我无效。最终有效的方式是在 Sublime Text 2 中打开文件。转到“文件”>“使用编码重新打开”>“UTF-8”。将整个文件内容复制到新文件中并保存。
可能不是预期的解决方案,但我在这里分享以帮助任何需要的人,因为我已经苦苦挣扎了数小时。