die Dateien sollten UTF-8 encodiert sein - TextEdit jedoch interpretiert diese Daten als Mac Roman.
Spotlight hat damit in der Regel keine Probleme.
Für die Konvertierung gibt es iconv oder textutil.
Ergebnis 1 bis 10 von 12
- 06.03.2010, 10:19 #1
Umlaute bei Ausgabeumleitung in eine Datei
Moin Moin,
um feststellen zu können auf welcher externen Festplatte sich eine bestimmte Datei befindet, würde ich gern eine Liste aller Dateien auf den externen Festplatten erstellen. Mit TextWrangler funktioniert das auch tadellos. Nun würde ich das aber gern mit Bordmitteln erreichen.
Ich gehe davon aus, das ich auf der Platte eine Datei habe die „Ökobilanz.txt“ heißt. Wenn ich nun per „ls“ nachschaue, wird mir auch „Ökobilanz.txt“ angezeigt. Wenn ich dann „ls >hd1-files.txt“ ausführe und dann per TextEdit in „hd1-files.txt“ hineinschaue, steht dort aber „OÃàkobilanz.txt“ drin. Es gibt also ein Problem mit den Umlauten/Sonderzeichen. Das ist doof, da Spotlight diesen Dateinamen dann nicht finden kann. Wenn ich mir die Datei mit „cat hd1-files.txt“ anschaue ist alles in Ordnung, ich erhalte als Ausgabe „Ökobilanz.txt“, das gleiche z.B. auch mit „less hd1-files.txt“.
Ich habe nun schon mit den Kodierungen für das Terminal rumgespielt, aber keine hat zum richtigen Ergebnis geführt. Für „ls“ gibt es auch ein paar Optionen bezüglich Kodierungen aber es sieht so aus, als würde die alle brechen, sobald ich den Output in eine Datei umleite.
Wäre schön, wenn da jemand einen Tipp hätte. Kann auch ruhig was komplexeres z.B. mit awk, sed oder so sein.
KayHH
- 06.03.2010, 19:21 #2
- 06.03.2010, 20:19 #3
- 06.03.2010, 22:22 #4
Okay, ich hab' mit der Kodierung im Terminal rumgespielt und das hat zu nichts geführt.
Wenn ich TextEdit von automatische Erkennung auf UTF-8 umstelle (was ich nicht so schön finde), zeigt TextEdit zwar „Ökobilanz.txt“ an, aber das nützt mir nichts, da Spotlight das nicht findet. Ziel ist es, dass ich den Namen einer gesuchten Datei in Spotlight eingebe und ich die Info bekomme, das sich dieser Name in Datei xy (Dateiname [mit der Liste der Dateien drin] = Plattenname) befindet. Dann kann ich die Platte anstöpseln und die gesuchte Datei laden.
„iconv -f MACROMAN -t UTF-8 hd1-files.txt >hd1-files.iconv.txt“ bringt auch nicht das gewünschte Ergebnis. In TextEdit findet sich nun weder mit Öffnen „Automatisch“ noch „UTF-8“ das richtige. Spotlight findet auch nichts.
KayHHGeändert von KayHH (06.03.2010 um 22:38 Uhr)
- 07.03.2010, 00:02 #5
Dein Problem hat wohl weniger mit der Codierung zu tun, als mit der Indexierung der Datei. Das scheint nämlich nicht (sofort?!) zu passieren. Mach doch mal folgenden Test. Öffne die Datei mit TextEdit und speichere sie einfach ohne Änderungen noch einmal ab. Ich wette, dann findet Spotlight auch die "Ökobilanz".
MacApple
- 07.03.2010, 20:22 #6
Moin MacApple,
habe die Datei editiert und ein Wort, das es ansonsten auf dem Rechner nicht gibt ergänzt. Spotlight findet die Datei (trotz Umlaut) sofort. „Ökobilanz“ wird weiterhin nicht gefunden obwohl der Dateiinhalt offensichtlich gerade erst indexiert wurde.
KayHH
- 09.03.2010, 21:19 #7
hängt's vielleicht mit fehlendem BOM zusammen?
und dann weiteren inhalt dranhängenCode:printf "\xEF\xBB\xBF" > /pfad/zur/datei.txt
Geändert von CloneOfMyself (09.03.2010 um 23:21 Uhr)
- 10.03.2010, 01:57 #8
BOMs sind nicht nur überflüssig, sondern störend.
Was die Datei braucht, ist ein von TextEdit erstelltes "Extended Attribute", welches die Textkodierung auch für Spotlight ausweist. Dazu genügt es, die Datei (muss hierzu das Suffix *.txt tragen) in TextEdit als UTF-8 neu zu speichern.
Alternativ kann dieses EA auch im Terminal angefügt werden:
(Diese seltsam anmutende Zahl ist die Dezimaldarstellung der Carbon-internen Flags, die die exakten Details zum verwendeten Encoding festhalten, zB ByteOrder, Unicode-Version, Composed/Decomposed, mit oder ohne BOM usw... - wers ganz genau wissen will, wirft dazu einen Blick in:Code:xattr -w com.apple.TextEncoding 'UTF-8;134217984' Textfile.txt
/Developer/SDKs/MacOSX10.${LATEST}.sdk/\
System/Library/Frameworks/CoreServices.framework/\
Frameworks/CarbonCore.framework/Headers/TextCommon.h )
Wurde die Datei bereits zuvor mit falschem Encoding indiziert, so ist dieser Vorgang danach erneut anzustossen:
Code:mdimport Textfile.txt
- 10.03.2010, 20:06 #9
... sehr interessant! Da bedanke ich mich doch gleich mit für die Aufklärung. Hat sich's heute ja wieder gelohnt aufzustehen...
- 10.03.2010, 20:45 #10
Moin Rastafari,
das mit Abspeichern als UTF-8 funktioniert leider nicht (s.o.), aber der Tipp mit den „xattr“ war Gold wert. Das lässt sich dann per kleinem bash-Script auch noch brauchbar automatisieren. Ein Anstoßen von Spotlight scheint übrigens nicht nötig. Die Datei mit dem Wort „Ökobilanz“ wurde auch so sofort gefunden und auch ein QuickLook zeigt das Wort nun richtig an.
KayHH


Zitieren



