我有一个文本文件,由于错误的字符编码而出现了一些乱码和损坏的字符。当我使用UTF-8打开它时,有些字符串会出现这种情况。哪种脚本语言最有效地检测这些损坏的字符?Perl不是一个选项。我基本上想找到一种使用脚本扫描文本文件并输出发现损坏字符的行号和可能的偏移量的方法。我考虑使用AWk,但我不知道在搜索损坏的字符时要使用什么正则表达式。如果能指点一下方向,那就太好了。
更全面的输入:
我希望这个脚本告诉我哪一行有损坏的字符,以上面的例子为例,是第五行。此外,文本文件中有不同的语言,包括英语、中文、法语、西班牙语、俄语、葡萄牙语、土耳其语、欧洲法语、德语、荷兰语、佛兰芒语、韩语和葡萄牙语(Moz)。我还有一些特殊字符,如#、!和***。
我使用了以下if语句来得到上面的输出:
更全面的输入:
我希望这个脚本告诉我哪一行有损坏的字符,以上面的例子为例,是第五行。此外,文本文件中有不同的语言,包括英语、中文、法语、西班牙语、俄语、葡萄牙语、土耳其语、欧洲法语、德语、荷兰语、佛兰芒语、韩语和葡萄牙语(Moz)。我还有一些特殊字符,如#、!和***。
我使用了以下if语句来得到上面的输出:
if($1 ~ /[^\x00-\x7F]/){
print NR ":" , $0 > "output.txt";
count++;
}
[\x{80}-\x{FF}]
。 - user557597<condition> { <action> }
语句。我想象不出在条件周围加上if()
会导致什么问题 - 也许它以为你有一个名为if
的变量或函数,并尝试用测试结果进行字符串连接或其他操作...我真的不知道。但请不要这样做 - 使用发布的脚本。此外,请发布给定输入的预期输出,我们无法测试可能的解决方案而不知道输出应该是什么。 - Ed Morton