Подтвердить что ты не робот

Искать документ для не-ascii

Приложение на моем компьютере должно читать в текстовом файле. У меня их несколько, и один не работает; программа не читает ее и говорит мне, что в ней где-то есть плохой символ. Прежде всего я предполагаю, что там где-то есть символ не-ascii, но я не знаю, как его найти. Perl или любое общее регулярное выражение было бы неплохо. Любые идеи?

4b9b3361

Ответ 1

Вы можете использовать [^\x20-\x7E] для соответствия символу, отличному от ASCII.

например. grep -P '[^\x20-\x7E]' suspicious_file

Ответ 2

perl -wne 'printf "byte %02X in line $.\n", ord $& while s/[^\t\n\x20-\x7E]//;'

найдет каждый символ, который не является символом ASCII, вкладкой, пробелом или новой линией.

Если он сообщает 0D (возврат каретки) в файлах, которые являются O.K., затем измените \t\n на \t\n\r.

Если он сообщает только 0D в плохих файлах, возможно, вы можете исправить эти файлы, запустив dos2unix на них.

Ответ 3

Если вы используете табуляторы в своем исходном коде, попробуйте этот шаблон:

[^\x08-\x7E]

Работает также в Notepad ++