Daniel Tieber: Encoding ISO-8859-1 -> UTF-8 konvertieren

hi, ich habe folgenden thread gefunden, bei dem eigentlich das behandelt wird was ich suche.

http://forum.de.selfhtml.org/archiv/2002/11/30072/

ich möchte nämlich das encoding von xml dateien umstellen (es geht um 500-800) dateien.
nun hätte ich gerne ein tool gehabt welches zumindestens über command line steuerbar ist...

nun kenn ich mich im perl leider überhaupt nicht aus...
kann mir jemand dabei helfen so ein tool zu erstellen?

lg
-DT

  1. Hallo,

    ich möchte nämlich das encoding von xml dateien umstellen (es geht um 500-800) dateien.
    nun hätte ich gerne ein tool gehabt welches zumindestens über command line steuerbar ist...

    nun kenn ich mich im perl leider überhaupt nicht aus...
    kann mir jemand dabei helfen so ein tool zu erstellen?

    Unter Windows kannst du etwa iconv oder recode benutzen:

    http://gnuwin32.sourceforge.net/packages/libiconv.htm
    http://unxutils.sourceforge.net/

    Beide lassen sich über die Kommandozeile bedienen, mit einer for-Schleife können sie dann z.B. alle Dateien eines Verzeichnisses umkodieren.

    Mathias

    1. Hi, danke erstmal...

      könntest du mir kurz erklären wie ich das mit libconv mache?
      ich hab bereits das setup heruntergeladen und installiert...
      wie benutze ich das tool nun?

      danke im voraus mal, du hast mir damit sehr viel arbeit erspart

      glg
      -DT

      Unter Windows kannst du etwa iconv oder recode benutzen:

      http://gnuwin32.sourceforge.net/packages/libiconv.htm
      http://unxutils.sourceforge.net/

      Beide lassen sich über die Kommandozeile bedienen, mit einer for-Schleife können sie dann z.B. alle Dateien eines Verzeichnisses umkodieren.

      Mathias

      1. Hallo Daniel,

        könntest du mir kurz erklären wie ich das mit libconv mache?

        iconv ist ein Kommandozeilen-Tool. Also Schreibe dir eine kleine
        Batch-Datei, die ueber die Files iteriert und fuer jede

        iconv --from-code=ISO-8859-1 --to-code=UTF-8 datei.xml

        ausfuehrt. Aber geh vorher lieber sicher, dass du wirklich
        ISO-8859-1 und nicht Windows-1252 verwendest :) Die Batch-Datei
        koennte z. B. so aussehen:

        cd %0
        for %%x in (*.xml) do iconv --from-code=ISO-8859-1 --to-code=UTF-8 "%%x"

        Grüße,
         CK

        --
        Mit einem Windhauch kannst du das Feuer loeschen. Mit einem Windhauch kannst du das Feuer entfachen.
        http://wwwtech.de/
        1. Hallo,

          iconv --from-code=ISO-8859-1 --to-code=UTF-8 datei.xml

          Mein iconv gibt dann den Datei-Inhalt aus, anstatt ihn zurückzuschreiben.

          Man kann zwar

          iconv --from-code=ISO-8859-1 --to-code=UTF-8 --output=datei.xml datei.xml

          schreiben, aber das führt bei mir freundlicherweise dazu, dass die Datei geleert (vernichtet) anstatt konvertiert wird. Das geht also nur, wenn die Ausgabedatei nicht die Eingabedatei ist.

          Die Batch-Datei koennte z. B. so aussehen:

          cd %0
          for %%x in (*.xml) do iconv --from-code=ISO-8859-1 --to-code=UTF-8 "%%x"

          Eventuell noch etwas wie > %%x dahinter, damit die Daten wieder zurückgeschrieben werden.

          Allerdings würde ich dann doch zu recode statt iconv raten, das vernichtet keine Daten und schreibt automatisch zurück. Da funktioniert die Bedienung so:

          recode ISO-8859-1..UTF-8 datei.xml

          Mathias