Sprung zum Inhalt

Webdesign nach Maß von webdesign weisshart

Mein Blog

RSS Feed AbonnementRSS 2.0 Feed

zum Archiv und den Kategorien

Zeit zur Umstellung auf utf-8

Sonntag, 25. Dezember 2016

Es gibt doch tatsächlich immer noch Webworker, die ihre Seiten noch nicht als utf-8 ausliefern. Aber früher oder später stolpert jeder über dieses Thema. So geschehen kürzlich bei einer befreundeten Bloggerin.
Der Hosting Provider teilte mit, dass - wieder einmal - neue PHP Versionen verfügbar sind. Eine gute Gelegenheit, endlich die eingesetzte total veraltete, und möglicherweise unsichere PHP Version durch eine aktuellere zu ersetzen? Keine Affäre, das im Kundenmenü umzustellen. Die Wahl fiel auf PHP 5.6. Und im ersten Moment sah auch alles gut aus. Bis auf vereinzelte � (Fragezeichen) im Text.

Die Ursache:

PHP liefert ab Version 5.6 standardmäßig utf-8 aus. Auch wenn Dateien nicht als utf-8 gespeichert sind. Das führt dazu, dass Sonderzeichen/Umlaute als � dargestellt werden. Außerdem sind alle Seiten nicht mehr valide.
Was tun? Zurück zu PHP 5.2? Nein. Jetzt wird klar Schiff gemacht.

Die Schritte zur sauberen Umstellung auf utf-8

  1.  
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />ändern in
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />Falls Daten als .xml Files vorliegen, lautet die korrekte Headerzeile entsprechend:
    <?xml version="1.0" standalone="yes" encoding="UTF-8" ?>
  2. Die Dateien als utf-8 speichern. Dazu muss der verwendete Editor entsprechend angewiesen/eingestellt werden. Bei Projekten mit vielen Seiten kann das leider in Arbeit ausarten. Weil jede einzelne Datei im Editor aufgerufen und neu abgespeichert werden muss.
  3. Eine Kleinigkeit ist noch zu beachten: Wenn mittels PHP per <include> Inhalte eingefügt werden, dürfen die einzufügenden Dateien kein BOM beinhalten. Leider speichert der Windows Editor Notepad utf-8 grundsätzlich mit BOM, und ist damit zum Arbeiten mit utf-8 ungeeignet. Unter Windows brauchbar/empfehlenswert ist beispielsweise Notepad++. Mac User haben es leichter: Praktisch jeder Editor kann utf-8 ohne BOM.
  4. Wer, aus welchen Gründen auch immer, Umlaute bisher mit html-Entities maskierte - also beispielsweise &uml; an Stelle von ü - hat damit erst einmal kein Problem. Die Darstellung im Browser passt weiterhin. Aber mittel-/langfristig macht es natürlich Sinn, diese Maskierungen zu entfernen. Der Lohn der Mühe: Der Quelltext wird dadurch besser lesbar.
  5. Unter Umständen sind jetzt noch Anpassungen an verwendeten PHP Skripten erforderlich. Im vorliegenden Fall handelte es sich um
    - das Suchscript, sowie
    - die Kommentarfunktion.
    Beide Skripte sind voll utf-8 tauglich, und mussten lediglich entsprechend konfiguriert werden.

Ergebnis

Ein gutes Gefühl. Und endlich ist auch die nervige Warnung des Validators Geschichte:

Warning: Legacy encoding iso-8859-15 used. Documents should use UTF-8.



2 Kommentare

  1. Hallo,

    Wenn der Beitrag vom 25. Dezember 2016 ist und man den fehlenden Einsatz eines längst standardisierten Encodings bemängelt, sollte man vielleicht für die Metadaten HTML5 konform bleiben und nicht den ebenfalls veralteten HTML4 Standard verwenden! Alternativ kann man beides ansprechen, aber auf HTML5 heutzutage und gerade in einem Beitrag mit dieser Thematik gar nicht einzugehen, macht keinen guten Eindruck.

    Kommentar von Arne Drews — Mittwoch, 18. Januar 2017 - 21:28 Uhr

  2. @Arne Drews
    Danke für den Kommentar.
    Ich kann leider nicht nachvollziehen, inwiefern utf-8 und HTML5 voneinander abhängig sein sollten.
    Und ich sehe auch keinerlei Sinn darin, einen kurzen Blogpost zum Thema utf-8 mit der Thematik HTML5 aufzublähen.

    Kommentar von Fritz Weisshart — Freitag, 20. Januar 2017 - 17:55 Uhr

Einen Kommentar abgeben

Damit Code-Beispiele richtig angezeigt werden, müssen Sonderzeichen maskiert werden (z.B. < zu &lt;).


(notwendig)

(notwendig)

Spamschutz:
Je nach Inhalt wird Ihr Kommentar eventuell nicht sofort angezeigt, sondern muss manuell freigeschaltet werden.

Archiv:

Kategorien:

Creative Commons Lizenzvertrag
Alle Texte (nicht Bilder!) Creative Commons CC BY-NC-SA 3.0 DE