Kleine storing (verholpen)

Het kan bezoekers opgevallen zijn dat we een kleine technische storing hadden. Met name de Ledenlijst pagina toont wat rare symbolen (zwart wit gestreepte engelsdrop, zeg maar).

Verkeerde rendering
Correcte rendering

Technische achtergrond

Het probleem is dat de paar aanwezige Unicode leestekens onjuist worden weergegeven. Unicode is wat de online wereld gebruikt voor emoji of andere speciale symbolen. Dit is “plotseling” ontstaan – mogelijk door een foutje bij de hosting provider.

Oplossing

De response bestanden die in browser (Safari, Edge, Chrome, Firefox) aankwamen waren in de netwerk (HTTP) header plotseling gelabeld met:

Content-Type: text/html; charset=windows-1252

mogelijk omdat de default op de server veranderd was. Dit kon hersteld worden door op de root directory van deze website de instelling (van de wegprovider?) te overrulen in de plaatselijke .htaccess file met:

AddCharset UTF-8 .html
AddType text/html .html

De AddCharset lost het probleem op terwijl AddType de zogenaamde MIME type bepaalt.
De gegevens in de HTTP header hebben overigens voorrang op eventuele <meta> tags in de inhoud van het bestand.

Alternatieven

  • Een smerige oplossing is om de files die problemen geven op een andere server te zetten die geen probleem heeft met Unicode in html bestanden. Dat kan geregeld worden met een zogenaamde 301 redirect in de genoemde .htaccess te specificeren. Voorbeeld die een hele directory verplaatst:

Redirect 301 /XampleMax/ http://www.vdhamer.com/XampleMax/

  • Het is ook mogelijk om de Unicode karakters (bijvoorbeeld 🌐) te coderen via een escape sequence, waardoor het voor de HTTP server geen UTF-8 bestand meer hoeft te zijn, maar teruggebracht wordt tot een ouderwets ASCII (“&#x1F310;“). Dit betekent voor Fotoclub Hub, mijn zijn statisch gegenereerde HTML pagina’s:
    • Weergave werkt ook op verkeerd geconfigureerde servers.
    • Vertaling van tekstfragmenten in de code loopt toch al door vertaaltabellen om meertalig te kunnen zijn. Dit regelt bijvoorbeeld beschadigen aan 🌐 of 🏵️.
    • Tekstfragmenten die in ingelezen (JSON) databestanden zijn, moeten via een een conversiefunctie die b.v. &#xFC; van een ü maakt. Dit kan alleen voor een beperkt aantal speciale letters die bijvoorbeeld in persoonsnamen voorkomen (“Krüsemann”).

Dank aan M. Smits en M. Miermans voor het meedenken over bruikbare oplossingen.