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

Как удалить символы UTF-8 из текстового файла

У меня есть куча арабских, английских и русских файлов, которые закодированы в utf-8. Попытка обработать эти файлы с помощью Perl script, я получаю эту ошибку:

Malformed UTF-8 character (fatal)

Вручную проверяя содержимое этих файлов, я обнаружил в них какие-то странные символы. Теперь я ищу способ автоматического удаления этих символов из файлов.

Есть ли способ сделать это?

4b9b3361

Ответ 1

Эта команда:

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

Ответ 2

Ваш метод должен читать байты по байтам и полностью понимать и оценивать байт-мудрую конструкцию символов. Самый простой способ - использовать редактор, который будет читать что угодно, но только выводить символы UTF-8. Текстовый блок - один из вариантов.

Ответ 3

Для справки у git bash есть iconv на windows

Ответ 4

cat foo.txt | strings -n 8 > bar.txt

выполнит эту работу.