1

Я хотел бы убедиться, что все мои файлы правильно закодированы в UTF-8 в большом репозитории проекта. Есть ли инструмент для этого или способ сделать это с помощью инструментов Unix?

1 ответ1

1

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

Однако вы можете использовать эвристический подход. Что именно работает, будет зависеть от ваших данных.

Одна идея:

  • Составьте список всех файлов, которые являются текстовыми файлами и содержат не-ASCII символы. Вторую часть легко сделать, используя perl или аналогичный; первое будет зависеть от того, какие файлы у вас есть. Unix- file также проверяет наличие символов, отличных от ASCII, но он менее надежен (проверяет только начало файла).
  • Если список небольшой, проверьте файлы вручную. В противном случае, проверьте, какие из них являются действующими UTF-8 (опять же, в Perl есть модули для этого, или используйте инструмент, такой как iconv или recode). Действительные файлы UTF-8, вероятно, в порядке. Остальные должны быть проверены вручную (если вы точно не знаете, как они кодируются).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .