Batch-Konvertierung nach UTF-8


  • Mod

    Ich habe einen Verzeichnisbaum mit verschiedensten Dateien und möchte die Text-Dateien (Erkennung via Endung reicht, Endungen müssen aber frei wählbar sein) darin nach UTF-8 konvertieren. Allerdings: Manche sind bereits UTF-8, nur weiß niemand mehr welche Dateien das sind. Andere sind entweder UTF-16 oder Cp1252.

    Umfang: Rund 2500 Dateien.

    Gesucht: Tool zur Automatisierung für Windows 7.

    MfG SideWinder



  • Keine Ahnung, was Cygwin so mitbringt, aber mit man: file und man: iconv ist sowas gleich erledigt. man: enca könnte Dir auch helfen. Dass ich es mit nativen Windows-Tools nicht so habe, weißt Du ja eh. 🙂


  • Mod

    Danke erstmal, aber mangels enca unter Cygwin habe ich noch ein Problem.

    Mit der Cygwin-Shell kann ich mir schon mal nur die richtigen Files (Dateiendungen) filtern und iconv macht die Arbeit. Leider ist kein Tool dabei, dass mir das Encoding feststellt - da enca wie gesagt dort nicht läuft.

    Kennst du noch eine Alternative?

    MfG SideWinder



  • SideWinder schrieb:

    Kennst du noch eine Alternative?

    Ja, wie gesagt: In halbwegs eindeutigen Fällen funktioniert man: file(1) ganz gut:

    ~ % file seminararbeit.org     
    seminararbeit.org: ISO-8859 text
     ~ % iconv -f iso-8859-15 -t UTF-8 seminararbeit.org > seminararbeit.org.utf8
     ~ % file seminararbeit.org.utf8
    seminararbeit.org.utf8: UTF-8 Unicode text
    

    Nicht optimal, aber sollte sich zurechtbiegen lassen. Ehrlich gesagt verwende ich auch immer nur iconv, aber vielleicht hilft Dir auch recode irgendwie, keine Ahnung, ob das irgendwie brauchbar ist.


  • Mod

    Wie kann ich file dazu zwingen das Encoding festzustellen bzw. auszugeben? Hab keine Option gefunden, bei dir tut es das scheinbar freiwillig. Bei meinen XML-Dateien gibt es nur "exported SGML document text" aus.

    MfG SideWinder



  • also file ist da sicherlich generell sehr ungeeignet für.

    xml dateien umzukodieren erscheint mir generell nicht sinnvoll. Da sollte das verwendete encoding ja im ersten tag stehen. Einfach utf8en ohne die info in der datei auch zu berichtigen geht also nicht.


  • Mod

    DrGreenthumb schrieb:

    also file ist da sicherlich generell sehr ungeeignet für.

    xml dateien umzukodieren erscheint mir generell nicht sinnvoll. Da sollte das verwendete encoding ja im ersten tag stehen. Einfach utf8en ohne die info in der datei auch zu berichtigen geht also nicht.

    Sind uA uach XML-Dateien darunter die ich überspringen könnte. Aber in erster Linie sind es Textdateien.

    MfG SideWinder



  • DrGreenthumb hat schon recht, die Sache mit file wäre ein recht böser hack gewesen, den ich auch nur für ein einmaliges Konvertieren von ein paar zig Files oder so verwendet hätte, nicht für irgendwelche regelmäßig anfallenden Jobs oder so.

    Falls es sich dabei nur um einen einmaligen Job handelt und Du keine Windows-Tools findest: Magst Du nicht einfach schnell in einer VM eine GNU/Linux-LiveCD booten und das einfach so konvertieren lassen? Wäre vmtl. schneller, als das jetzt auf biegen und brechen unter Windows machen zu wollen, zumindest dann, wenn Du nicht schon irgendwelche geeigneten Tools kennst, die sich bequem installieren lassen. Cygwin ist eben nur ein Notnagel.


Anmelden zum Antworten