ファイルに特定の文字セットの文字が含まれているかどうかを検出する方法が必要です。
具体的には、一連のファイルで UTF8 でエンコードされたキリル文字の存在を検出したいと考えています。これを行うツールはありますか?
ありがとう
ファイルに特定の文字セットの文字が含まれているかどうかを検出する方法が必要です。
具体的には、一連のファイルで UTF8 でエンコードされたキリル文字の存在を検出したいと考えています。これを行うツールはありますか?
ありがとう
すぐに使えるソリューションをお探しの場合は、Encaを試してみてください。
ただし、UTF-8キリル文字としてデコードできる可能性のあるものの存在のみを検出したい場合(完全なUTF-8有効性チェックなし)、/(\xD0[\x81\x90-\xBF]|\xD1[\x80-\x8F\x91]){
n,}/
のようなものをgrepする必要があります(この正確な正規表現はn個の後続のUTF8用です) -エンコードされたロシア語のキリル文字)。ファイル全体に有効な UTF-8 データのみが含まれていることをさらに確認するには、isutf8(1)
.
どちらの方法にも良い面と悪い面があり、間違った結果をもたらす場合もあります。
ICU ライブラリの IIRC には、文字セット検出を行うコードがあります。基本的にベストエフォートの推測ですが。
編集:私は正しく覚えていました。この論文/チュートリアルをチェックしてください