2009-06-09 4 views

Répondre

2

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.

+0

Grepping pour l'expression rationnelle spécifiée a résolu mon problème. Merci! – dasp

2

IIRC la bibliothèque ICU a du code qui fait la détection de jeu de caractères. Bien que ce soit essentiellement un meilleur effort à deviner.

Edit: Je ne me souviens bien, consultez cette paper/tutorial

+0

Merci, le tutoriel est utile. Il est réservé pour référence future. – dasp

Questions connexes