6

Существует ли для Windows инструмент (командная строка, графический интерфейс, скрипт и т.д.), Который может создать каталог и идентифицировать все файлы, закодированные как UTF-16?

4 ответа4

2

Этот инструмент позволяет определить тип кодировки файла с учетом стандартной информации, такой как шаблон поиска и путь к файлу:

Проверка кодировки файлов

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

Я не использовал это сам, так что вы можете проверить это.

1

Для файлов UTF-16 с спецификацией - команда PowerShell

gci . -Include *.txt -Recurse | `
% { $c = gc $_.FullName -TotalCount 2 -Encoding Byte; `
    if ( $c.Length -gt 0 -and `
         (($c[0] -eq 255 -and $c[1] -eq 254) -or `
         ($c[0] -eq 254 -and $c[1] -eq 255)) `
        ) {$_.FullName} `
  }
1

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

Или вы можете написать такой инструмент, используя фрагмент кода C++ из этой статьи. Преобразование между Unicode UTF-16 и UTF-8 в C++/Win32. Пользовательский инструмент может быть оптимизирован, чтобы избавиться от первой ошибки преобразования и не сохранять преобразованный буфер в файл.

0

Нетрудно сделать один, прочитать первые два байта каждого файла и посмотреть, установлены ли они в FF FE (окна) соответственно.

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