Si vous cherchez une solution prête, vous voudrez peut-être essayer Enca.
Cependant, si vous voulez seulement pour détecter la présence de ce qui peut être éventuellement décodé en UTF-8 caractères cyrilliques (sans aucune vérification de validité UTF-8 complets), il vous suffit de grep pour quelque chose comme /(\xD0[\x81\x90-\xBF]|\xD1[\x80-\x8F\x91]){
n,}/
(cette expression exacte correspond à n caractères cyrilliques russes codés en UTF8). Pour vérifier que tout le fichier contient uniquement des données UTF-8 valides, vous pouvez utiliser quelque chose comme isutf8(1)
.
Les deux méthodes ont leurs bons et leurs mauvais côtés et peuvent parfois donner des résultats erronés.
Grepping pour l'expression rationnelle spécifiée a résolu mon problème. Merci! – dasp