Webseiten, Online-Shops, Digitale Medien
Rufen Sie uns an: 037200 828894
Abbonieren


[Valid RSS]

Warum werden Texte mit Umlauten plötzlich nicht mehr ausgegeben?

erstellt am 25.11.2014 von Alexandra Bernhard

... oder auch PHP ab Version 5.4 und das htmlspecialchars und htmlentities Problem.



Zeichensätze und Zeichenkodierungen stellten schon ein Problem dar, als es die ersten Rechenmaschinen gab, die Text verarbeiten konnten. Für viele Web-Entwickler wird es jetzt mal wieder akut. Wer sein Projekt jetzt auf das immer notwendiger werdende PHP 5.4 oder höher umstellt, kommt dabei evtl. an ein Problem: Einige Texte auf Webseiten werden plötzlich nicht mehr ausgegeben. Hier gibt es eine sehr wahrscheinliche Erklärung für dieses ärgerliche Phänomen.



In PHP 5.4 hat sich das Standard-Encoding für Zeichensätze von ISO-8859-1 auf UTF-8 geändert. Dabei kann es zu Problemen mit den Funktionen htmlspecialchars und htmlentities kommen. Das äußert sich darin, das die Funktionen NULL zurückgeben, und folglich gar keine Ausgabe mehr zu sehen ist. Die Texte scheinen plötzlich verschwunden zu sein.

Beheben lässt sich das Problem folgendermaßen:



Für die Funktion htmlspecialchars:



1
2
3
4
5
6
 
//ändere dies:
echo htmlspecialchars('Textausgabe mit ö');
//in dies:
echo htmlspecialchars('Textausgabe mit ö', ENT_COMPAT,'ISO-8859-1');
 


Für die Funktion htmlentities:



1
2
3
4
5
6
 
//ändere dies:
echo htmlentities('Textausgabe mit ö');
//in dies:
echo htmlentitites('Textausgabe mit ö', ENT_COMPAT,'ISO-8859-1');