Hallo
Ok, eine Frage, auch wenn das ursächlich nichts mit deinem Problem zu tun hat. Ich sehe überall den Einsatz der Funktion
utf8decode
. Deine Seite wird mit der Kodierung ISO-8859-1 ausgeliefert? Ansonsten wäre der Einsatz der Funktion falsch.Das utf8decode habe ich eingefügt, weil alle Umlaute falsch ausgegeben wurden, lasse ich es weg, kommen zwar die Anführungsstriche korrekt, aber die Umlaute nicht ....In meinem Header steht:
header("Content-Type: text/html; charset=UTF-8");
Dass der Header am Schluss zum Zuge kommt, hat dir Martin schon mit seinem Einweckgleichnis erklärt. Dröseln wir das mal auf.
Um die Ausgabe von UTF-8 sicher zu stellen, ist …
- … die Eingabe in UTF-8 vorzunehmen oder nach UTF-8 umzuwwandeln.
- … die durchgängige Verarbeitung in der kodierung UTF-8 durchzuführen.
- … die Ausgabe in UTF-8 vorzunehmen.
Du bekommst vom SR den Inhalt – mit all seinen Unzulänglichkeiten – in UTF-8. Du gibst auf deiner Seite, wenn auch verkrüppelt, UTF-8 aus. Irgendwo dazwischen geht etwas schief. Da ist einerseits die falsche Umwandlung mit utf8decode
, da ist aber wohl auch noch etwas anderes. Ich vermute, dass es mit dem Parameter Charset der Funktion htmlspecialchars
zu tun hat. Unter PHP 5.4 und 5.5 wird standardmäßig UTF-8 verwendet, frühere PHP-Versionen verwenden ISO-8859-1, ab PHP 5.6 wird standardmäßig die mit default_charset ermittelte Kodierung verwendet.
Hast du nun deinen nach ISO-8859-1 umgewandelten String und jagst ihn durch htmlspecialchars
, welches mangels anderer Angaben UTF-8 verwendet (oder umgekehrt) wird bei Zeichen, die in der jeweils anderen Kodierung nicht oder an anderer Stelle vorkommen, Salat herauskommen. Nutze also den Paramater Charset für htmlspecialchars
.
Ansonsten fällt mir im gezeigten Code nur noch eines auf.
<li><a href='
<?php echo htmlspecialchars ($href); ?>
' target='_blank' class="ketchup tooltip" title="
Benutze zur Behandlung von $href
nicht htmlspecialchars
, sondern rawurlencode
, das dazu da ist, Sonderzeichen des Kontexts URL zu maskieren (z.B. Leerzeichen in Dateinamen als „%20“).
Tschö, Auge
Es schimmerte ein Licht am Ende des Tunnels und es stammte von einem Flammenwerfer.
Terry Pratchett, „Gevatter Tod“