johny7: Massenkonverter ARCII zu UTF-8

Moin allerseits,

ich wundere mich, dass ich nach längerer Suche noch immer keinen Massenkonverter für den Zeichensatz gefunden habe. Wenn ich mit Notepad++ ein in ASCII geschriebenes Dokument nach UTF-8 umstelle, werden die Umlaute komisch kodiert. Ich will sie nicht per Hand alle neu schreiben. Deshalb wollte ich einen Dateikonverter dafür finden.

Kann mir jemand helfen?

Grüße, JN

--
ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
http://www.johny7.de
  1. Hallo,

    ich wundere mich, dass ich nach längerer Suche noch immer keinen Massenkonverter für den Zeichensatz gefunden habe.

    du meinst für die Zeichencodierung?
    Vielleicht deshalb, weil die Änderung der Codierung an einem bereits bestehenden Dokument eher eine untypische Aufgabe ist? Normalerweise legt man sie beim Erstellen und Bearbeiten des Dokuments fest und behält sie dann bei.

    Wenn ich mit Notepad++ ein in ASCII geschriebenes Dokument nach UTF-8 umstelle, ...

    ... dann ist es hinterher mit dem Originaldokument exakt identisch. Denn für den in ASCII definierten Codebereich 0x00..0x7F sind die Codes im gespeicherten Dokument genau gleich.

    Vermutlich meinst du eher eine Nicht-ASCII-Codierung, die Zeichen mit Codes >0x7F enthält.

    ... werden die Umlaute komisch kodiert.

    Es gibt keine Umlaute in ASCII.

    Ich will sie nicht per Hand alle neu schreiben. Deshalb wollte ich einen Dateikonverter dafür finden.

    Einerseits bin ich trotz aller genannten Punkte ziemlich sicher, dass es sowas schon gibt. Andererseits ist das beispielsweise mit PHP ungefähr ein Fünfzeiler. Das ganze dann als CLI aufgerufen, vielleicht sogar aus einer Batchdatei, die ein ganzes Verzeichnis durchgeht ...

    So long,
     Martin

    --
    Lieber mit Betty im Wald
    als mit Waldi im Bett.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Moin allerseits,

      Vermutlich meinst du eher eine Nicht-ASCII-Codierung, die Zeichen mit Codes >0x7F enthält.

      Genau! Dort steht nicht ASCII sondern ANSI. Vermutlich ist das die verwendete Zeichenkodierung.

      ... werden die Umlaute komisch kodiert.

      Es gibt keine Umlaute in ASCII.

      Ich will sie nicht per Hand alle neu schreiben. Deshalb wollte ich einen Dateikonverter dafür finden.

      Einerseits bin ich trotz aller genannten Punkte ziemlich sicher, dass es sowas schon gibt. Andererseits ist das beispielsweise mit PHP ungefähr ein Fünfzeiler. Das ganze dann als CLI aufgerufen, vielleicht sogar aus einer Batchdatei, die ein ganzes Verzeichnis durchgeht ...

      Ich kann mir jetzt natürlich versuchen, so eine Batch-Datei zu basteln. Aber gibt es sowas nicht einfach als Drag&Drop für Windows?

      Grüße, JN

      --
      ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
      http://www.johny7.de
      1. Ich kann mir jetzt natürlich versuchen, so eine Batch-Datei zu basteln. Aber gibt es sowas nicht einfach als Drag&Drop für Windows?

        Du kannst natürlich auch versuchen deinen Hausverstand einzusetzen und einfach mal 5 Zeilen weiter im "Kodierung"-Menüpunkt von Notepad++ lesen ...

        1. Moin allerseits,

          Du kannst natürlich auch versuchen deinen Hausverstand einzusetzen

          Hm, den kann man erst einsetzen, wenn er auch Input bekommt. Von nichts kommt nichts...

          und einfach mal 5 Zeilen weiter im "Kodierung"-Menüpunkt von Notepad++ lesen ...

          Da ist schon weniger der Hausverstand als die Rezeption betroffen. Trotzdem danke.

          Grüße, JN

          --
          ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
          http://www.johny7.de
          1. Da ist schon weniger der Hausverstand als die Rezeption betroffen. Trotzdem danke.

            Ist dein Konvertierungsproblem nun gelöst?

            1. Moin allerseits,

              Da ist schon weniger der Hausverstand als die Rezeption betroffen. Trotzdem danke.

              Ist dein Konvertierungsproblem nun gelöst?

              A jou! Einfach in Notepad++ unter Kodierung den Befehl 'Konvertiere zu ...' wählen.

              Grüße, JN

              --
              ie:{ fl:( br:^ va:| ls:[ fo:| rl:? n4:? ss:| de:] js:| ch:? sh:( mo:| zu:)
              http://www.johny7.de
  2. Wenn ich mit Notepad++ ein in ASCII geschriebenes Dokument nach UTF-8 umstelle, werden die Umlaute komisch kodiert.

    Kann mir jemand helfen?

    Nein, da hilft wohl nur der Hausverstand - aber als kleinen Hint: Umstellen != Transcodieren/Konvertieren

  3. moin,

    Kann mir jemand helfen?

    Perl:
    sub latin1_to_utf8{return(pack("U*", unpack("C*", shift)))}

    PS: Wie Martin schon schrieb, in ascii gibts keine Umlaute. Stelle die Zeichencodierung in Deiner Datei genau fest, wenn es iso-8859-1 (latin1) ist, geht o.g. Perlfunktion. In latin1 liegt das deutsche 'ä' auf 228 (C4) mit einem byte codiert. In utf-8 hat das 'ä' 2 byte.

    Hab neulich die Daten aus einer Exceltabelle extrahieren müssen und dabei versucht, alles auf utf-8 umzuwandeln. Dabei gab es jedoch Fliegendreck, also irgendwelche undefinierten bytes, so bin ich dann bei iso geblieben und alles sieht ordentlich aus. Prüfe also auch im Einzelfall, ob eine Convertierung wirklich notwendig ist, manchmal ists besser, die Codierung einer (großen) Datenquelle einfach so zu belassen und die neue Anwendung darauf abzustimmen.

    Hotti

  4. Tach,

    ich wundere mich, dass ich nach längerer Suche noch immer keinen Massenkonverter für den Zeichensatz gefunden habe. Wenn ich mit Notepad++ ein in ASCII geschriebenes Dokument nach UTF-8 umstelle, werden die Umlaute komisch kodiert. Ich will sie nicht per Hand alle neu schreiben. Deshalb wollte ich einen Dateikonverter dafür finden.

    wenn es wirklich ums umkodieren geht, ist iconv das Tool der Wahl.

    mfg
    Woodfighter