ディレクトリを再帰的に実行し、UTF-16としてエンコードされたすべてのファイルを識別することができるWindows用のツール(コマンドライン、GUI、スクリプトなど)はありますか?
このツールを使用すると、検索パターンやファイルパスなどの標準情報を指定して、ファイルのエンコードタイプを検出できます。
ファイルエンコーディングチェッカーは、1つ以上のファイルのテキストエンコーディングを検証できるGUIツールです。このツールは、選択したすべてのファイルのエンコーディングを表示することも、指定したエンコーディングを持たないファイルのみを表示することもできます。
自分では使ったことがないので、ぜひチェックしてみてください。
BOMを使用する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++コードスニペットを使用してこのようなツールを作成することもできます C++/Win32でのUnicodeUTF-16とUTF-8間の変換 。カスタムツールは、最初の変換エラーをあきらめ、変換されたバッファをファイルに保存しないように最適化される場合があります。
1つ作成し、すべてのファイルの最初の2バイトを読み取り、それぞれFF FE(ウィンドウ)に設定されているかどうかを確認するのは難しくありません。