UTF-8 oder ANSII von 1000 Textdateien rauskriegen

ollle

Cadet 1st Year
Dabei seit
Juli 2013
Beiträge
15
Ich habe folgendes Problem: ich habe ca. 1000 Textdateien (mit der Dateiendung *.str) in diversen Unterverzeichnissen. Ich muss jetzt rauskriegen, welche der Dateien UTF-8 und welche ANSII kodiert sind.
Kennt jemand vielleicht eine Software, mit der ich das rauskriegen kann?
 

ollle

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2013
Beiträge
15
Hmmm, wenn das nicht so kompliziert wäre, vielleicht schon. Aber "Normalsterbliche" sollten das auch können. Wenn jemand vielleicht eine Software kennt, dann kann ich die Lösung auch nem Kollegen weitergeben.
Trotzdem danke!
 

crvn075

Lt. Junior Grade
Dabei seit
Juli 2015
Beiträge
429
Will mich jetzt nicht zu weit aus dem Fenster lehnen, aber wenn bei den UTF8-basierten Dateien das Byte Order Mark fehlen sollte, dann dürfte diese Entscheidung je nach Inhalt der Datei gar nicht immer möglich sein. Wenn das BOM fehlt, dann ist beispielsweise "hello world" sowohl gültiges 7bit ASCII als auch gültiges UTF8. Du bräuchtest hier für eine einwandfreie Unterscheidung also die Garantie, dass wirklich jedes UTF8-kodierte File auch mindestens einen Character enthält, der nicht in ASCII enthalten ist, und dann bräuchtest du ein Tool, was in jeder Datei nach genau solchen Zeichen sucht.

Wenn das BOM aber vorhanden ist, dann ist der von Madman beschriebene weg eigentlich schon ziemlich einfach, viel leichter wird es nicht werden.
 
Zuletzt bearbeitet:

andy_m4

Commander
Dabei seit
Aug. 2015
Beiträge
2.785
Ich habe folgendes Problem: ich habe ca. 1000 Textdateien (mit der Dateiendung *.str) in diversen Unterverzeichnissen. Ich muss jetzt rauskriegen, welche der Dateien UTF-8 und welche ANSII kodiert sind.
... um dann was damit zu machen? Oder soll die Software einfach nur ne Liste ausspucken?
Ergänzung ()

Will mich jetzt nicht zu weit aus dem Fenster lehnen, aber wenn bei den UTF8-basierten Dateien das Byte Order Mark fehlen sollte, dann dürfte diese Entscheidung je nach Inhalt der Datei gar nicht immer möglich sein.
Naja. 7-Bit ASCII und UTF-8 sind identisch. Von daher kann man sie exakt gleich behandeln. Insofern ist die Frage auch nicht ganz exakt.
Ich befürchte ja, dass nicht ASCII gemeint ist, sondern irgendein Windows-Zeichensatz vs. UTF-8.
 
Zuletzt bearbeitet:

crvn075

Lt. Junior Grade
Dabei seit
Juli 2015
Beiträge
429
Zuletzt bearbeitet:

ollle

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2013
Beiträge
15
... um dann was damit zu machen? Oder soll die Software einfach nur ne Liste ausspucken?
Die 1000 Dateien dürfen nicht in UTF-8 kodiert sein, sonst gibts Probleme mit der Software, die die Dateien liest. Es dürften nur einige wenige in UTF-8 sein. Genau genommen war es eine einzige, die ich gefunden habe....

Danke, das hat mir geholfen. Bei den meisten Dateien steht zwar ASCII (nee, ich kenne den Unterschied zwischen ANSII und ASCII nicht), bei vielen auch „Unknown“ und bei genau einer UTF-8.
Ich geh jetzt naiverweise davon aus, dass UTF-8 eliminiert ist.
 

Nixdorf

Commander
Dabei seit
Nov. 2009
Beiträge
2.467
ich kenne den Unterschied zwischen ANSII und ASCII nicht
  • ASCII ist in der Grundform nur eine 7-bit Zeichentabelle mit 128 Zeichen. Da fehlen dann zum Beispiel jegliche Umlaute. Mit diese Tabelle fangen viele andere Kodierungen an, sie sind also alle bei Texten mit ASCII kompatibel, solange diese nur diese ersten 128 Zeichen benutzen. Das macht es auch schwer, eine Datei als etwas anderes als SCII zu erkennen, wenn eben keine speziellen Zeichen drin stehen.
  • ISO-8859-1 ist eine von mehrern 8-bit-Tabellen, die jeweils weitere 128 Zeichen beinhalten. Die "-1" Version ist die in Deutschland gebräuchliche mit deutschen Umlauten. Wird auf allem außer Windows benutzt, wenn man keine UTF-Kodierung nimmt. ISO-8859-15 ist ISO-8859-1 mit Eurosymbol.
  • ANSI heißt eigentlich Windows-1252 und ist ähnlich zu ISO-8859-1, nur anders. Hat z.B. auch das Eurozeichen, aber an anderer Stelle. Wird auf Windows genutzt. Der Ärger mit ISO-8859-1/ISO-8859-15/Windows-1252 hat dazu geführt, dass man inzwischen am besten UTF-8 für alles nimmt.
  • UTF-8 ist die bei uns beliebteste Kodierung für Unicode. Hier gibt es keine feste Länge von z.B. einem Byte für ein Zeichen, da Unicode zigtausend Zeichen enthält. Daher haben seltene Zeichen eine länger Kodierung. Somit ist UTF-8 komplizierter als andere Formate. Auch hier gilt aber, dass es mit ASCII identisch ist, solange nur die ersten 128 Zeichen genutzt werden. Und es gibt noch den Sonderfall, dass man eine UTF-8-Datei explizit als solche markieren kann, wenn die richtigen drei (nicht angezeigten) Bytes am Anfang stehen (Byte Order Mark, BOM).

Ich hoffe, das hilft. Wie schon andere gesagt haben, kann man die Kodierung eben nicht immer am Inhalt erkennen. Daher steht da im Zweifelsfall halt oft "ASCII".
 

ollle

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2013
Beiträge
15
Super, danke für die Erklärung.
In besagten ANSI-Dateien sind hier die Umlaute auch noch als Unicode geschrieben, für "ä" steht dann da z.B. "\u00e4".
Kompliziert, wenn Jahrzehnte alte Standarts mit neueren zusammen treffen :-)
 

Nixdorf

Commander
Dabei seit
Nov. 2009
Beiträge
2.467
Top