ディレクトリをスキャンして、指定された文字セット (この場合は UTF-8) としてエンコードされている/エンコードされていないスクリプトを確認できる Windows アプリを知っている人はいますか? 手動で行うこともできますが、時間がかかり、エラーが発生しやすくなります。
2 に答える
2
UTF-8 は文字セットではなく、Unicode 文字のエンコーディングです。これはプログラミングとは関係ないので、スーパーユーザーに伝えます。
これらのシーケンスを検出するためのプログラムを書きたい場合は、非常に簡単です。
Illegal UTF-8 initial sequences
UTF-8 Sequence Reason for Illegality
10xxxxxx illegal as initial byte of character (80..BF)
1100000x illegal, overlong (C0 80..BF)
11100000 100xxxxx illegal, overlong (E0 80..9F)
11110000 1000xxxx illegal, overlong (F0 80..8F)
11111000 10000xxx illegal, overlong (F8 80..87)
11111100 100000xx illegal, overlong (FC 80..83)
1111111x illegal; prohibited by spec
1
次に、最初のオクテットが有効であれば、コード ポイントを形成するオクテットの数は、最初のビットの前のビット数をカウントすることで取得できることを覚えておいて0
ください。
たとえば、11110xxx
は 4 オクテット シーケンスの開始であるため、合法性を確立したら 4 オクテット先にスキップする必要があります。
もう 1 つは、すべての継続オクテットが で始まるようにすること10
です。
于 2009-11-18T03:06:58.700 に答える
1
これが探しているものかどうかはわかりませんが、コマンド シェルの for-loop を使用し、hdump
ユーティリティを使用して各ファイルの最初の数バイトをダンプします。このユーティリティは、ファイルのバイトを 16 進数形式で表示します。次に、各ファイルの先頭にある先頭の 3 バイト UTF-8 署名 (バイト オーダー マーク) を探します。
私のhdump
ユーティリティはhttp://david.tribble.com/programs.htmlで入手できます。
于 2009-11-18T03:07:39.633 に答える