В Windows, как найти все файлы в определенном каталоге, которые закодированы с использованием Unicode? - PullRequest
0 голосов
/ 26 января 2012

У меня проблемы с поиском строки в большом каталоге файлов.Команда поиска, которую я использую, пропускает любой файл, закодированный в Unicode.Я хочу найти все файлы в этом каталоге, которые закодированы в Unicode.Я на Windows XP.

Спасибо!

Ответы [ 3 ]

1 голос
/ 26 января 2012

Вы не знаете кодировку, прежде чем открыть файл и прочитать из него.Таким образом, вы будете перечислять файлы каталогов, затем пройтись по списку, открыть и проверить либо BOM, либо сам контент (например, определенное количество байтов заголовка).

0 голосов
/ 27 января 2017

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

  1. Перейти к нужному каталогу cd c:\MyDirectoryWithCrazyCharacterEncodingAndUnicode
  2. Запустите этот скрипт!

Скопируйте сценарий в окнах Powershell и вставьте его, вы можете просто поиграть с ним, чтобы исправить синтаксис

 foreach($FileNameInUnicodeOrWhatever in get-childitem )
 {        
    $tempEncoding = (Get-Content -encoding byte)
    write-output $FileNameInUnicodeOrWhatever "has encoding" $tempEncoding   

    //  [System.Text.Encoding]::$result
 }

Если вы хотите еще больше решить проблемы с отсутствиемвозможность найти файлы из-за кодировки, изменить тип кодировки

0 голосов
/ 26 января 2012

Команда find в Windows поддерживает текстовые файлы Unicode.findstr нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...