我的电脑上有一个应用程序需要读取文本文件。我有几个文件,其中一个无法使用;该程序无法读取它并告诉我其中存在不良字符。我的第一个猜测是其中有非ASCII字符,但我不知道如何找到它。Perl或任何通用的正则表达式都可以。有什么想法吗?
[^\x20-\x7E]
匹配非ASCII字符。grep -P '[^\x20-\x7E]' suspicious_file
perl -wne 'printf "byte %02X in line $.\n", ord $& while s/[^\t\n\x20-\x7E]//;'
将会找到所有非ASCII字符、制表符、空格或换行符。
如果它在正常文件中报告了0D
(回车符),那么请将\t\n
更改为\t\n\r
。
如果它只在错误的文件中报告0D
,那么您可以通过运行dos2unix
来修复这些文件。
perl -wne "printf qq(byte %02X in line $.\n), ord $& while s/[^\t\n\x20-\x7E]//;" <test.txt
- rplantiko[^\x08-\x7E]
也适用于Notepad++