Vorsicht, dieser Beitrag ist vielleicht eher was für Nerds: Wer in einen Computer Mist eingibt muss auch damit rechnen! Das ist eine altbekannte Weisheit. Aber manchmal versteckt sich der Fehlerteufel ganz tief im Detail und die Suche nach der Ursache dauert sehr viel länger als das Beseitigen des Fehlers. So eine Erfahrung hatte ich jetzt erst wieder. Kam so: In einem Anfall von bodenlosem Leichtsinn hatte ich mir ja schon vor Jahren die Ehrenämter des Medienbeauftragten für die „Siedlergemeinschaft Lauenau“ und für die „Kreisgruppe Deister-Süntel-Tal“ aufdrücken lassen – und ob ich diese Verpflichtungen bis zum Lebensende noch einmal loswerde wage ich bei der Bereitschaft meiner Mitmenschen zu Ehrenämtern ernsthaft zu bezweifeln. Zu dieser Tätigkeit gehört hauptsächlich die Pflege der beiden Internet-Auftritte.

Die laufen auf einem TYPO3-System. Das verfügt „unter der Haube“ über einen stinknormalen Rich Text Editor (RTE). Damit kann man Texte formatieren und Bilder, Verlinkungen oder Tabellen einfügen. Allerdings sind die Möglichkeiten doch arg begrenzt. Wenn man mehr haben will (oder braucht), dann schaltet man auf den HTML-Quellcode um und bearbeitet den unmittelbar. Letzteres mache ich grundsätzlich immer so, schon seit jeher. Weil ich keiner Maschine vertraue und das ist auch ganz gut so. Jedenfalls standen die Aktualisierungen der Rabattlisten an. Damals, als die Listen nur vielleicht einmal jährlich kamen, war der damit verbundene Arbeitsaufwand zwar nicht schön, aber überschaubar. Jetzt hat die Kreisgruppe einen sehr rührigen Vorsitzenden: Die letzten Listen kamen in Tagesabständen!

Nun verhält es sich so, dass ich die Teilseiten der Webauftritte im Sourcecode offline speichere. Warum? Weil es leider auch heute noch DFÜ-Fehler gibt (ich kann ein Lied davon singen) und wenn was bei der Übertragung vermurkst worden ist dann fängt man wieder bei der Entdeckung des Feuers und bei der Erfindung des Rades an. Abhilfe leistet der alte Grundsatz: Was man hat, das hat man. Das betrifft insbesondere auch die Sourcecodes der erwähnten Rabattlisten – einen Quellcode ändere ich sehr viel schneller und effektiver als direkt im Layout. Allerdings muss der Sourcecode dazu auch ziemlich wartungsfreundlich sein. Er war aber, weil es anfangs vor Jahren (2017 um genau zu sein) relativ schnell gehen musste, nicht wartungsfreundlich genug. Ohne jetzt ins Detail gehen zu wollen hier nur soviel: Am vergangenen, verregneten Wochenende habe ich das alles zum Leidwesen meiner besseren Hälfte binnen 14 Stunden auf „echt wartungsfreundlich“ von Hand umcodiert, wobei das Layout weitestgehend erhalten bleiben sollte.

Nun weist TYPO3 aber eine ziemlich nervige Eigenheit auf: Wenn man eine interne Verlinkung vornimmt, dann muss man die Zieldatei bereits vorliegen haben. Die erhält vom System eine ID. Man verlinkt dann zwar im RTE scheinbar auf die Datei, aber im Quellcode tatsächlich auf deren ID. In der Praxis sieht das So aus: Datei (z. B. ein PDF) hochladen. Quelltext im RTE-HTML-Bereich einkopieren. Umschalten auf die RTE-Ansicht, Verlinkung zur Datei vornehmen, Zurückschalten auf HTML-Ansicht und das kann man dann rauskopieren, um es offline zu sichern: Das System liefert selbst die zur Verlinkung gehörige ID. So weit, so gut. So mache ich das seit Jahren.

Zurück zu „echt wartungsfreundlich“ und zum Beibehalten des Layouts. Nun ja – es blieb nicht wirklich so, wie es vor der Umcodierung gewesen war. Irgendwie sah es auf der Seite hinterher unübersichtlicher aus. Kein Problem, denn es gibt ja reichlich HTML-Sonderzeichen und mit BabelMap als Sonderzeichenbrowser hat man (fast) die freie Auswahl. Folglich noch schnell ein passendes, pfeilartiges Sonderzeichen zwecks besserer Übersichtlichkeit eingefügt und siehe da: Sieht ganz passabel aus, ist übersichtlich und wartungsfreundlich. Schnell noch den Code gesichert … Dann folgte die nächste Aktualisierung. OK, den Code der letzten Überarbeitung genommen, angepasst, hochgeladen und – langes Gesicht! Wo ist mein Sonderzeichen geblieben? Warum steht da auf dem Bildschirm anstelle des Sonderzeichens plötzlich genau das Fragezeichen, das jetzt in jedem meiner Augen auftaucht? Simple Erklärung: Ich hatte mit der Verwendung des Sonderzeichens den Fehlerteufel geweckt!


So erscheint es normalerweise auf der Internetseite.

Ausschnitt aus dem zugrunde liegenden Programmcode.

Der auf der Internetseite erscheinene Pfeil wird durch die Zeichenfolge & # x 2 1 A A (ohne die Leerzeichen dazwischen) gefolgt vom Semikolon, repräsentiert. Der Browser erkennt das als Sonderzeichen und gibt anstelle der Zeichenfolge das Pfeilsymbol wieder. Ich hatte also den Code inklusive Sonderzeichenkette hochgeladen. Wie üblich folgte anschließend die Verlinkung, aus der das TYPO3 die ID machte: Genau da lag der Hase im Pfeffer! Die Verlinkung war zwar völlig OK, aber der seitens des Systems zurück gelieferte Programmcode wies hinsichtlich des Sonderzeichens eine klitzekleine Variante auf.


Ausschnitt aus dem vom Server nach dem Verlinken zurück gelieferten Code: Anstelle von & # x 2 1 A A ist hier bereits ein Pfeilsymbol enthalten!

Die klitzekleine Variante bestand darin, dass der nach der Verlinkung vom Server zurück gelieferte Code anstelle der Sonderzeichenkette & # x 2 1 A A bereits das Pfeilsymbol enthielt – was mir selbstverständlich völlig entgangen war. Beim Rauskopieren zwecks Sicherung mit meinem Standard-Texteditor wurde daraus nämlich ein Fragezeichen.


Das Sonderzeichen ist auf wundersame Weise zum Fragezeichen mutiert!

Es hat etwas gedauert, bis ich den Schlingel von Fehlerteufel dingfest machen konnte. Danach stand aber fest: Sobald ein Programmcode ein HTML-Sonderzeichen beinhaltet, kann ich die allermeisten Texteditoren nicht mehr für die Sicherung des vom TYPO3 zurückgelieferten Programmcodes verwenden – ausprobiert mit NotePad, SuperNoteTabLight, AkelPad, NotePad++ u. v. a. mehr. Was ich brauchte war ein Texteditor, der eine Rückübersetzung des Pfeilsymbols in die Zeichenkette vornahm. Es wurde eine lange Suche – die aber schließlich von Erfolg gekrönt war! Die portable Windows-Freeware BabelPad kann das nämlich!


Unter BabelPad wird das Sonderzeichen zwar auch als Symbol übernommen …

… doch wenn man den Code im Dateiformat „ASCII plus HTML Entities“ abspeichert, dann …

… kommt es zur Rückübersetzung in die zugrunde liegende Zeichenkette und damit erhält man den zur Sicherung geeigneten Programmcode.

So, der EFF („Echt Fieser Fehler“) ist gefunden und beseitigt! Mein kleiner, abschließender Tipp an alle diejenigen, die auch HTML-Code schreiben und die seitens eines Systems zurückgelieferten Code sichern müssen, lautet: Verwendet dazu BabelPad mit der Speicheroption „ASCII plus HTML Entities“. Dann seid ihr auf der sicheren Seite! Sicher, dass kann eine sehr ungewohnte Umstellung bedeuten. Geht mir ja auch nicht anders, nachdem ich meinen Standad-Text-Editor bereits seit gut einem Vierteljahrhundert verwende … 😉