我发现了一个被认为是 UTF-8 编码的文本文件的有问题的序列。奇怪的是 grep 似乎无法匹配这个非 ASCII 行。
\n\n$ iconv -f utf8 -t iso88591 corrupt_part.txt --output corrupt_part.txt.conv\niconv: illegal input sequence at position 8\n$ cat corrupt_part.txt\nOberallg\xef\xbf\xbdu\n$ grep -P -n \'[^\\x00-\\x7F]\' corrupt_part.txt\n$ od -h corrupt_part.txt\n0000000 624f 7265 6c61 676c 75e4 0a20\n0000014\n
Run Code Online (Sandbox Code Playgroud)\n\n\\xe4
例如,\xc3\xa4
在扩展 ASCII 集中也是如此。然而,过滤控制和可打印字符(ascii 范围),上面的 grep 命令应该与\\xe4
字符匹配。为什么我没有得到任何 grep 输出?