Wie utf-8 Dateien suchen

b.legt210

b.legt210

Mitglied
Thread Starter
Dabei seit
01.03.2006
Beiträge
81
Reaktionspunkte
4
Gibt es eine Möglichkeit alle UTF-8-kodierten Dateien eines Verzeichnisses (inkl. Unterverzeichnisse) zu suchen?

Hintergrund:
Code-Dateien eines größeren Projekts, welche überwiegend als Latin-1 gespeichert sind. Einige Dateien müssen aber zwingend als UTF-8 gespeichert werden. Dabei kommt es ab und an mal vor, dass einer der Entwickler die Dinger als UTF-8 (With BOM) statt UTF-8 (No BOM) speichert. Wie finde ich nun diese "falsch" gespeicherten Dateien?
 
Ich rate mal, dass Du von HTML-Seiten sprichst, in denen ein Charset eingetragen ist?
Stichworte:
Terminal
grep

google ist Dein Freund!
 
Das ist wohl schwieriger für Programme rauszufinden als gedacht. Zumindest gibt es keine 100%-ige Lösung. Wenn Du es in PHP machen willst, da gibt's was: http://de.php.net/manual/en/function.mb-internal-encoding.php

Edit: Oh mist, das ist doch was anderes… aber vielleicht hilft Dir das weiter: http://de.php.net/manual/en/function.mb-detect-encoding.php. Das gibt immerhin das Encoding eines Strings an. Wenn Du jetzt das Dokument als String lädst, geht's vielleicht. Dann kannst Du Dir per Schleife alle Encodings ausgeben lassen.
 
Zunächst mal Danke für die Antworten und noch mal ein paar mehr Details:
Es handelt sich bei den Dateien um Code-Dateien, also eine bunte Mischung aus PHP-, HTML- und ein paar SQL- bzw. JavaScript-Dateien.
Damit fällt die erste Möglichkeit "suche nach charset=utf-8" leider aus. Mit der PHP-Funktion komme ich auch nicht weiter, da die eben nicht zwischen UTF-8 mit oder ohne BOM unterscheiden kann. Die erkennt ja "nur" ob ein Text UTF-8 kodiert ist, analysiert aber nicht das Datei-Format. Ich dachte eher an etwas in der Art:
"Was gebe ich im Finder bei der Suche an, um nur Dateien im Format UTF-8 (no BOM / with BOM) zu finden". Ich kann dort zwar nach Datei-Typen suchen, das findet aber offensichtlich nur z.B. *.html-Dateien oder *.php oder so. Kann aber nicht das Format analysieren in dem die Datei gespeichert ist.
Evtl. würde es schon weiter helfen, wenn ich genau wüsste wie die beiden Zeichen des BOM genau definiert sind..
 
BOM

Allerdings haben UTF-8 Dateien normalerweise kein BOM -- wozu auch? Abgesehen davon kannst Du UTF-8 von WinLatin1 nur anhand von heuristischen Merkmalen unterscheiden, die aber immer nur eine Wahrscheinlichkeit angeben können.

Im übrigen gibt es ganz viele Leute, die WinLatin1 und UTF-8 mischen! Das ist verboten, fies und schlechter Stil, findet man aber häufig.

Alex
 
mh... golive bietet eine funktion mit dem man websites auf einen schlag die kodierung ändert. ob dabei neben html auch php, sql und der rest kodiert wird.... keine ahnung... ein versuch wäre es wert.
 
Zurück
Oben Unten