TomIRL: utf-8 versus iso-8859-1 Vorteile <=>Nachteile

Moin
Ich habe mir überlegt, dass man sich das umwandeln der Umlaute sparen könnte, wenn man die Seiten in UTF-8 erstellt.

Gibt es da eigentlich irgendwelche bekannten Vorteile oder Nachteile die vom Zeichensatz abhängig sind?
Schließe ich irgendwelche Nutzer aus?

Vielen dank und viele Grüße TomIRL

  1. Aloha!

    Was du beachten musst ist:
    Die einzigen Zeichen die mit UTF-8 noch maskiert werden müssen sind:
    & | &amp;
    < | &lt;

    | &gt;

    " | &quot;

    Manchmal ist in der httpd.conf und in der php.ini noch Latin 1 als Standart gewählt ->Umkonfigurieren auf utf-8 oder kommentieren!

    1. Hallo,

      Was du beachten musst ist:
      Die einzigen Zeichen die mit UTF-8 noch maskiert werden müssen sind:
      & | &amp;
      < | &lt;

      | &gt;
      " | &quot;

      Nicht zwangsläufig - " muss außerhalb von mit " eingeschlossenen Attributen nicht maskiert werden und ' dagegen muss innerhalb von Attributen, die mit ' eingeschlossen sind, als &#39; maskiert werden.

      Viele Grüße,
      Christian

      1. Hallo,

        Die einzigen Zeichen die mit UTF-8 noch maskiert werden müssen sind:
        & | &amp;
        < | &lt;

        | &gt;
        " | &quot;

        Nicht zwangsläufig - " muss außerhalb von mit " eingeschlossenen Attributen nicht maskiert werden

        &quot; ist tatsächlich meist überflüssig, aber rein technisch gesehen müssen (zumindest in HTML) auch <, > und & nicht zwangsläufig maskiert werden, aber wir sind ja für klare, einfache Regeln. ;)

        Mathias

  2. Hallo Tom,

    Ich habe mir überlegt, dass man sich das umwandeln der Umlaute sparen könnte, wenn man die Seiten in UTF-8 erstellt.

    Das kann man sich auch sparen, wenn man die Seiten in ISO-8859-1 oder einer anderen Kodierung kodiert, die die Umlaute enthält. Wenn ein Zeichen in der gewünschten Kodierung enthalten ist, muss man es nicht als Entity schreiben. Das hat mit UTF-8 erst einmal nicht viel zu tun.

    UTF-8 hat den Vorteil, dass sich mit dieser Kodierung *alle* in HTML erlaubten Zeichen direkt darstellen lassen können (der Zeichensatz von HTML ist immer ISO 10646, was im Prinzip Unicode ist, und UTF-8 kann alle Unicode-Zeichen darstellen). UTF-8 hat den Nachteil, dass ganz alte Browser mit UTF-8 nicht klarkommen. Alle aktuellen tun dies jedoch (meines Wissens sogar Netscape 4).

    Wenn Du wirklich nur Umlaute nicht als Entity schreiben willst, dann brauchst Du kein UTF-8 als Zeichenkodierung (ISO-8859-1 oder Windows-1252 reichen auch aus), kannst es aber auch gerne nehmen.

    Schließe ich irgendwelche Nutzer aus?

    Heutzutage wohl keine mehr. Du musst nur dafür sorgen, dass der Browser die Kodierung richtig mitbekommen, d.h. am besten möglichst alle Möglichkeiten ausschöpfen: a) explizit »Content-Type: text/html; charset=UTF-8« als Header senden, b) vor jeglichem Sonderzeichen im HTML-Dokument (also am besten direkt nach <head>) ein <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> einfügen und c) falls es sich um ein XHTML-Dokument handelt, das eine <?xml?>-Deklaration enthält, dort auch das enctype-Attribut auf UTF-8 setzen (ist zwar nicht unbedingt notwendig, da UTF-8 der Defaultwert ist, aber schaden tut es auch nicht).

    Viele Grüße,
    Christian

    1. 你好 Christian,

      UTF-8 hat den Vorteil, dass sich mit dieser Kodierung *alle* in HTML
      erlaubten Zeichen direkt darstellen lassen können

      Wobei der Umkehrschluss nicht gilt ;) UTF-8 kann mehr Zeichen kodieren
      als in HTML erlaubt sind.

      再见,
       克里斯蒂安

      --
      Buchpreisbindung? | Plasma-Bildschirm geklaut
      Wenn du gehst, gehe. Wenn du sitzt, sitze. Und vor allem: schwanke nicht!
      http://wwwtech.de/
  3. Moin,
    Vielen Dank nochmal für die Tips.
    Ich werde die Hinweise berücksichtigen und in utf-8 erstellen.
    TomIRL