2009-06-09 6 views
0

Ich brauche eine Möglichkeit festzustellen, ob eine Datei Zeichen aus einem bestimmten Zeichensatz enthält.Ermitteln des Vorhandenseins eines bestimmten Zeichensatzes

Insbesondere möchte ich das Vorhandensein von UTF8-codierten kyrillischen Zeichen in einer Reihe von Dateien erkennen. Gibt es ein Werkzeug, um dies zu tun?

Dank

Antwort

2

überprüfen Wenn Sie bereit Lösung suchen sind, möchten Sie vielleicht Enca versuchen.

Wenn Sie jedoch nur Gegenwart erkennen wollen, was möglicherweise als UTF-8 kyrillische Zeichen decodiert werden (ohne vollständige UTF-8 Gültigkeitsprüfungen), man muss nur etwas für grep wie /(\xD0[\x81\x90-\xBF]|\xD1[\x80-\x8F\x91]){n,}/ (Diese exakte Regexp ist für n nachfolgende UTF8-kodierte russische kyrillische Zeichen). Wenn Sie überprüfen möchten, ob die gesamte Datei nur gültige UTF-8-Daten enthält, können Sie beispielsweise isutf8(1) verwenden.

Beide Methoden haben ihre guten und schlechten Seiten und können manchmal falsche Ergebnisse liefern.

+0

Grepping für die angegebene Regex löste mein Problem. Vielen Dank! – dasp

2

IIRC die ICU-Bibliothek hat Code, der Zeichensatz Erkennung der Fall ist. Obwohl es im Grunde eine Best-Effort-Vermutung ist.

Edit: Ich habe richtig erinnere, diese paper/tutorial

+0

Danke, das Tutorial ist hilfreich. Lesezeichen für zukünftige Referenz. – dasp

Verwandte Themen