特定の文字セットの存在を検出
-
13-09-2019 - |
質問
私は、ファイルが特定の文字セットからの文字が含まれているかどうかを検出する方法が必要です。
具体的には、私は一連のファイルにUTF8でエンコードされたキリル文字の存在を検出します。これを行うためのツールはありますか?
おかげ
解決
あなたは準備ができて解決策を探している場合は、
は、 Enca にしようとする場合があります。
あなたが唯一の可能性(任意の完全なUTF-8の有効性チェックなし)UTF-8キリル文字としてデコードすることができるものの存在を検出したい場合は、しかし、あなただけの/(\xD0[\x81\x90-\xBF]|\xD1[\x80-\x8F\x91]){
のようなもののN をgrepする必要がem>の,}/
(この正確な正規表現は、のN のその後のUTF8でエンコードされたロシアのキリル文字のためです)。ファイル全体が唯一の有効なUTF-8のデータが含まれていることを追加のチェックのためには、 isutf8(1)
<のようなものを使用することができます/ >。
どちらの方法でも、自分の良い面と悪い面を持って、時には間違った結果を与える可能性があります。
他のヒント
IIRC ICUライブラリは、文字セットの検出を行うコードを持っています。それは基本的にベストエフォート型の推測だけど。
編集:私が正しく覚えてなかった、この紙/チュートリアルの
所属していません StackOverflow