Вопрос

Мне нужен способ определить, содержит ли файл символы из определенной кодировки.

В частности, я хочу обнаружить присутствие кириллических символов в кодировке UTF8 в серии файлов.Есть ли инструмент для этого?

Спасибо

Это было полезно?

Решение

Если вы ищете готовое решение, возможно, вы захотите попробовать Энка.

Однако, если вы хотите только обнаружить наличие того, что может быть возможно декодировано как символы кириллицы UTF-8 (без каких-либо полных проверок достоверности UTF-8), вам просто нужно grep для чего-то вроде /(\xD0[\x81\x90-\xBF]|\xD1[\x80-\x8F\x91]){n,}/ (это точное регулярное выражение предназначено для n последующие символы русской кириллицы в кодировке UTF8).Для дополнительной проверки того, что весь файл содержит только допустимые данные UTF-8, вы можете использовать что-то вроде isutf8(1).

Оба метода имеют свои хорошие и плохие стороны и иногда могут давать неправильные результаты.

Другие советы

IIRC в библиотеке ICU есть код, который выполняет обнаружение набора символов.Хотя, по сути, это наилучшая догадка.

Редактировать:Я действительно правильно запомнил, посмотрите на это документ / учебное пособие

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top