Professor Hase: UTF-8 Codierung mit Notepad2

Hallo Forum,

ich benutze zur Erstellung meiner xhtml-, CSS- und PHP-Dateien den Texteditor Notepad2, da dieser auch UTF-8 Unterstützung bietet.

Leider habe ich jetzt feststellen müssen, daß eine Datei, in der _keine_ Umlaute oder Sonderzeichen vorkommen, auch wenn bei der Erstellung noch UTF-8 eingestellt ist, im Unicode-Modus gespeichert werden.

Erst, wenn ich zur selben Datei auch zB. nur ein einziges " ü " dazugebe und sie wieder speichere, _bleibt_ sie UTF-8 codiert und öffnet sich beim nächsten mal auch als solche.

Ist das wem anderen auch schon aufgefallen? Woran liegt das? Wie kann ich auch eine Datei _ohne_ Umlaute dauerhaft UTF-8 codiert speichern? Ich kenne keine ( auf USB-Stick installierbare ) Editoralternative. ( Vorallem habe ich gelesen, daß andere Editoren, wie zB Dreamweaver zwar UTF-8 speichern, aber irgendetwas, wo mir der Name jetzt nicht einfällt, dazuspeichern, wo der Validator dann Alarm schlägt bzw. warnt. )

MfG

Professor Hase

  1. Hallo,

    Erst, wenn ich zur selben Datei auch zB. nur ein einziges " ü " dazugebe und sie wieder speichere, _bleibt_ sie UTF-8 codiert und öffnet sich beim nächsten mal auch als solche.

    hier liegt wohl ein Verständnisproblem vor. Wenn eine Datei -oder ein beliebiger Textausschnitt- nur Zeichen aus dem Codebereich 0x00..0x7F enthält, dann ist eine Unterscheidung zwischen ASCII, ANSI, ISO oder UTF-8 nicht möglich, weil die Codierung dieser Zeichen überall identisch ist.

    Wie kann ich auch eine Datei _ohne_ Umlaute dauerhaft UTF-8 codiert speichern?

    Wenn sie ASCII/ANSI/ISO-codiert ist und _keine_ Sonderzeichen oberhalb von 0x7F enthält, ist sie gleichzeitig auch korrekt UTF-8 codiert.

    So long,
     Martin

    --
    Moskito, ergo summ.
    1. Hi Martin,

      hier liegt wohl ein Verständnisproblem vor.

      Das dürftest Du völlig korrekt erkannt haben. :-)

      Danke für Deine Erklärung und Antwort! Jetzt verstehe ich es.

      Übrigens, nur so nebenbei, weißt Du, was ich gemeint habe mit dem Dings, wo mir jetzt der Name nicht einfällt, den _manche_ Editoren bei einer UTF-codierten Datei dazupacken und wo der Validator dann meckert?

      mfG

      Professor Hase

      1. Servus,

        Übrigens, nur so nebenbei, weißt Du, was ich gemeint habe mit dem Dings, wo mir jetzt der Name nicht einfällt, den _manche_ Editoren bei einer UTF-codierten Datei dazupacken und wo der Validator dann meckert?

        Das Byte-order mark (BOM), mit dem viele Applikationen nicht umzegehen wissen. Ich speichere meine UTF-8-Dateien daher ohne solches.

        Gruss
        Patrick

        --
        sh:( fo:| ch:? rl:( br:> n4:( ie:% mo:) va:} de:> zu:) fl:| ss:| ls:[ js:|
        1. Hi Patrick,

          Ich speichere meine UTF-8-Dateien daher ohne solches.

          Mit welchem Texteditoir arbeitest Du denn? Ich habe keinen eigenen PC und schleppe somit meine Software und meine Daten auf USB-Stick mit mir herum. Ich verwende wie gesagt den Notepad2. Der läßt sich auf USB-Stick installieren, macht Syntax Highlighting und speichert UTF-8 codierte Dateien _ohne_ besagtes " BOM ".

          Aber vielleicht kennst Du ja noch eine bessere Alternative?!

          MfG

          Professor Hase

          1. Hallo,

            Ich verwende wie gesagt den Notepad2. Der läßt sich auf USB-Stick installieren, macht Syntax Highlighting und speichert UTF-8 codierte Dateien _ohne_ besagtes " BOM ".

            Je nach eingestellter Codierung. Neben „normalen“ UTF-8 gibt es da noch „UTF-8 Signature“, womit UTF-8 mit BOM gemeint ist. Man kann dieses BOM also auch mit Notepad2 verwenden, wenn man will.

            mfg. Daniel

          2. Hi!

            Aber vielleicht kennst Du ja noch eine bessere Alternative?!

            Notepad2 kenne ich nur vom Namen. Ich arbeite mit Notepad++, der ebenfalls auf Sctintilla basiert.

            Wenn du einen mächtigeren Editor suchst, dann schau dir mal vim an.
            Auch jEdit wäre ein schöner Editor mit Unicode-Untersützung.
            Ist in Java geschrieben und läuft somit auf fast jeder Plattform. Mit Hilfe von Plugins kannst du da wahnsinnig viel draus machen.

            Schöner Gruß,
            rob

      2. Hallo,

        Übrigens, nur so nebenbei, weißt Du, was ich gemeint habe mit dem Dings, wo mir jetzt der Name nicht einfällt, den _manche_ Editoren bei einer UTF-codierten Datei dazupacken

        Vielleicht ein Byte-Order-Mark (BOM), aber wieso sollte der Validator darüber meckern?

        und wo der Validator dann meckert?

        Von welcher Fehlermeldung sprichst du denn?

        Der Validator schlägt z.B. Alarm, wenn in einem Dokument Bytes gefunden werden, die nicht gemäß der vom Validator angenommenen Kodierung korrekt dekodiert werden können.
        Das kommt i.d.R. daher, dass er Validator eine Kodierung annimmt, die nicht der Kodierung des Dokuments entspricht. Ergo, er hat die Kodierung falsch erkannt, was auf eine fehlende oder falsche Kodierungsangabe im HTML-Dokument bzw. im HTTP-Header hinweist.
        Mit BOM hat das aber nichts zu tun.

        Mathias

        1. Hyvää päivää!

          Vielleicht ein Byte-Order-Mark (BOM), aber wieso sollte der Validator darüber meckern?

          Richtig meckern tut er nicht, aber er schreibt:

          »Byte-Order Mark found in UTF-8 File.

          The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.«

          Das ist aber nur ein Hinweis, der über dem eigentlichen Ergebnis steht, kein Fehler und auch keine Warnung. Die Datei kann trotzdem valide sein.

          Viele Grüße vom Længlich

  2. Hallo,

    Leider habe ich jetzt feststellen müssen, daß eine Datei, in der _keine_ Umlaute oder Sonderzeichen vorkommen, auch wenn bei der Erstellung noch UTF-8 eingestellt ist, im Unicode-Modus gespeichert werden.

    Den Satz verstehe ich nicht. Was ist der »Unicode-Modus«?
    Ich kenne Nodepad2 nicht, aber abgesehen davon ist deine Frage seltsam: Wenn man Text alleine mit den 128 ASCII-Zeichen als UTF-8 kodiert, so sieht der Byte-Stream exakt genauso aus wie bei der Kodierung US-ASCII.

    Erst, wenn ich zur selben Datei auch zB. nur ein einziges " ü " dazugebe und sie wieder speichere, _bleibt_ sie UTF-8 codiert und öffnet sich beim nächsten mal auch als solche.

    Als was wird sie denn geöffnet, wenn kein Umlaut o.ä. drinsteht?

    Ist das wem anderen auch schon aufgefallen? Woran liegt das? Wie kann ich auch eine Datei _ohne_ Umlaute dauerhaft UTF-8 codiert speichern?

    Was bedeutet »dauerhaft UTF-8 codiert speichern«? UTF-8-Kodierung geht erst genau dann über US-ASCII hinaus, wenn ein Zeichen außerhalb von ASCII verwendet wird. Ansonsten ist kein Unterschied erkennbar - deshalb ist UTF-8 auch bedingt abwärtskompatibel mit US-ASCII. Der einzige Unterschied könnte ein Byte-Order-Mark (BOM) am Dateianfang sein. Ein solches kann einen Editor darauf aufmerksam machen, dass die Datei UTF-8-kodiert ist, es ist aber nicht obligatorisch.

    zwar UTF-8 speichern, aber irgendetwas, wo mir der Name jetzt nicht einfällt, dazuspeichern, wo der Validator dann Alarm schlägt bzw. warnt.

    Ich wüsste nicht, was das sein soll.

    Mathias

    1. Hi Mathias,

      danke für die genauen Ausführungen!

      UTF-8-Kodierung geht erst genau dann über US-ASCII hinaus, wenn ein Zeichen außerhalb von ASCII verwendet wird. Ansonsten ist kein Unterschied erkennbar - deshalb ist UTF-8 auch bedingt abwärtskompatibel mit US-ASCII.

      Ich habe es schon verstanden in der Zwischenzeit. Es war einfach ein Verständnisproblem meinerseits.

      zwar UTF-8 speichern, aber irgendetwas, wo mir der Name jetzt nicht einfällt, dazuspeichern, wo der Validator dann Alarm schlägt bzw. warnt.

      Ich wüsste nicht, was das sein soll.

      _Genau jenes_ " BOM ", das Du gerade angesprochen hast, habe ich gemeint. :-)

      MfG

      Professor Hase

  3. Hello out there!

    Erst, wenn ich zur selben Datei auch zB. nur ein einziges " ü " dazugebe und sie wieder speichere, _bleibt_ sie UTF-8 codiert und öffnet sich beim nächsten mal auch als solche.

    Wenn nur Basic-Latin-Zeichen (ASCII, bis U+007E) im Dokument vorkommen, schaltet der Editor wohl seine eingestellte Standardcodierung ein; er kann ja keine andere erraten. Musste mal kucken, wo du diese bei Notepad2 ändern kannst. (Bei Textpad geht das jedenfalls.)

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
    1. Moin!

      Wenn nur Basic-Latin-Zeichen (ASCII, bis U+007E) im Dokument vorkommen, schaltet der Editor wohl seine eingestellte Standardcodierung ein; er kann ja keine andere erraten. Musste mal kucken, wo du diese bei Notepad2 ändern kannst. (Bei Textpad geht das jedenfalls.)

      Ich behelfe mir damit (durchaus auch als Handreichung an Dritte, die die Datei bearbeiten wollen), in der Nähe des Dateibeginns als Kommentar "ÜTF-8" zu notieren. Das Ü allein reicht für die UTF-8-Erkennung aus - und man sieht auch in anderen Editoren direkt, wenn die Erkennung nicht geklappt hat.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. Wenn nur Basic-Latin-Zeichen (ASCII, bis U+007E) im Dokument vorkommen, schaltet der Editor wohl seine eingestellte Standardcodierung ein;

        Ich behelfe mir damit, in der Nähe des Dateibeginns als Kommentar "ÜTF-8" zu notieren.

        Warum nicht gleich http://de.selfhtml.org/inter/zeichenkodierungen.htm#iso8859_9@title=ISO-8859-9? ;-)

        Roland

        --
        Classic Rap: MP3 96k • AAC+ 24k • WMA 32k