web-dev-qa-db-ja.com

WindowsでUTF-16でエンコードされたすべてのファイルを検索する

ディレクトリを再帰的に実行し、UTF-16としてエンコードされたすべてのファイルを識別することができるWindows用のツール(コマンドライン、GUI、スクリプトなど)はありますか?

6
Mark Richman

このツールを使用すると、検索パターンやファイルパスなどの標準情報を指定して、ファイルのエンコードタイプを検出できます。

ファイルエンコーディングチェッカー

ファイルエンコーディングチェッカーは、1つ以上のファイルのテキストエンコーディングを検証できるGUIツールです。このツールは、選択したすべてのファイルのエンコーディングを表示することも、指定したエンコーディングを持たないファイルのみを表示することもできます。

enter image description here

自分では使ったことがないので、ぜひチェックしてみてください。

2
NoChance

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} `
  }
1
Dmitry Sokolov

遅い方法は、変換ユーティリティを使用して、ディレクトリ内のすべてのファイルに対して実行することです。 UTF-16から別の形式に正常に変換されたファイルは、おそらく必要なものです。そのタスクでは、 文字セットコンバータ のような利用可能なツールを選択できます。

または、この記事のC++コードスニペットを使用してこのようなツールを作成することもできます C++/Win32でのUnicodeUTF-16とUTF-8間の変換 。カスタムツールは、最初の変換エラーをあきらめ、変換されたバッファをファイルに保存しないように最適化される場合があります。

1
SlavaGu

1つ作成し、すべてのファイルの最初の2バイトを読み取り、それぞれFF FE(ウィンドウ)に設定されているかどうかを確認するのは難しくありません。

0
pcunite