Существует ли для Windows инструмент (командная строка, графический интерфейс, скрипт и т.д.), Который может создать каталог и идентифицировать все файлы, закодированные как UTF-16?
4 ответа
Этот инструмент позволяет определить тип кодировки файла с учетом стандартной информации, такой как шаблон поиска и путь к файлу:
File Encoding Checker - это инструмент с графическим интерфейсом, который позволяет проверять кодировку текста одного или нескольких файлов. Инструмент может отображать кодировку для всех выбранных файлов или только для файлов, которые не имеют указанных кодировок.
Я не использовал это сам, так что вы можете проверить это.
Для файлов 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} `
}
Медленным способом было бы взять любую утилиту преобразования и запустить ее для всех файлов в каталоге. Те файлы, успешно преобразованные из UTF-16 в другой формат, скорее всего, вам нужны. Для этой задачи вы можете выбрать доступный инструмент, такой как Конвертер наборов символов.
Или вы можете написать такой инструмент, используя фрагмент кода C++ из этой статьи. Преобразование между Unicode UTF-16 и UTF-8 в C++/Win32. Пользовательский инструмент может быть оптимизирован, чтобы избавиться от первой ошибки преобразования и не сохранять преобразованный буфер в файл.
Нетрудно сделать один, прочитать первые два байта каждого файла и посмотреть, установлены ли они в FF FE (окна) соответственно.