2016
Daantjes Weblog.


Menu 2017

Jaren overzicht

December 2016

November 2016

Oktober 2016

September 2016

Augustus 2016

Juli 2016

Juni 2016

Mei 2016

April 2016

SSN Jubileumreis
Dresden

Maart 2016

Februari 2016

Januari 2016

Menu 2015

Smal beeldscherm of smal venster. Tekst pas niet naast elkaar. Scroll naar beneden om de tekst te lezen. of maak browser venster breeder.

De Charset nachtmerrie

Wanneer je computer aan zet het geheel opstart vind iedereen normaal dat er allemaal tekens en letters op het scherm verschijnen. Alle mogelijke tekens zijn namelijk ondergebracht in een Charset. De zogenaamde character set. Wanneer je een bestand wegschrijft naar een disk. Dan komt bitcodering van dat bestand overeen met de gebruikte character set.

De eerste computers hadden maar plek voor 265 tekens. En dat is bij lange na niet voldoende om alle gebruikte letters ter wereld onder te brengen. dus er zijn een character sets die plaats afhankelijk zijn. Zo zijn er character sets met Romeinse tekens, Arabische tekens, Russische tekens, Griekse tekens, etc & etc. De eerste computers hadden maar plek om maar met 1 character set te werken. En deze character set zat ook nog eens in het ROM geheugen ingebakken. Dus de character set kon niet door gebruikers aangepast worden. Daardoor ontstond in de jaren 90 een probleem omdat tegen alle verwachtingen in er een teken toegevoegd moest worden (€)

De huidige besturingssystemen werken nu met alle gangbare character sets. Maar desondanks door de komst van het internet was er behoefte een een universeel character set. Want het verwerken van informatie met verschillende character sets geeft namelijk problemen.

In een opwelling had Daantje besloten om een PHP script te gaan schrijven dat de RSS feed van verschillende nieuwssite zou samen bundelen op 1 HTML pagina. Toen ik deze pagina ging testen bleek dat niet alle letters even goed werden weergegeven. Dit kwam door het gebruik van verschillende character sets. Terwijl ik mijn script als ASCII-DOS (ISO-8559-1) opsloeg liet ik het script werken met bestanden die als Inicode (UTF-8) waren opgeslagen. De uitvoer was een HTML bestand dat bestond uit ASCII-DOS en Unicode en dat kan niet. Je kunt geen 2 character sets in 1 bestand gebruiken. In de Unicode character sets hebben de meest gangbare tekens (1 tot 0 A tot Z) dezelfde codering maar de letters zoals BV ë, á, ù, ç, ö, hebben in Unicode een andere codering. Omdat het script bestand in ASCII opgeslagen was gaat de browser er van uit dat alles in ASCII codering was. Ondanks dat er in de META tags aangeven was dat er unicode gebruikt is.

Wanneer je een cursus HTML doet. Dan leer je dat een HTML bestand een zogenaamd text bestand is. Een tekst bestand is een bestand waar alleen de losse tekens in worden opgeslagen. inclusief de einde regel codes. Onder Windows kun je in principe het kladblok uit de losse hand een html document maken. maar het kladblok slaat wel alles op als ASCII-DOS. Het text editor programma "Crimson Editor" kan wel text bestanden in UTF-8 wegschrijven. Nadat ik dit gedaan had met php script werden alle tekens wel goed weergegeven.

Toch maar de proef op de som gedaan om te kijken welke character sets zo op het internet gebruikt worden. En dan blijkt dat vele pagina's nog altijd in DOS-ASCII geschreven zijn. In plaats van Uni code. RSS feeds zijn doorgaans in UTF-8. Maar deze door elkaar gebruiken geeft compatibiliteit problemen. En bij grote websites is het een hele uitdaging om alles om te zitten in UTF-8. Want elk tekens in een eventuele database als in los text file moet dan omgezet worden.


Vorig blog bericht.
Blog begin pagina
Volgend blog bericht.
7 *
Bezoekers vinden
dit goed.
5 *
Bezoekers vinden
dit slecht.
4 *
Bezoekers zijn
boos.
3 *
Bezoekers vinden
dit geweldig.
2 *
Bezoekers zijn
medelevend.
2 *
Bezoekers vinden
dit grappig.
1 *
Bezoekers zijn
verbluft.
1 *
Bezoekers zijn
verdrietig.

Vorig blog bericht.
Blog begin pagina
Volgend blog bericht.

Creative Commons Licentie
Dit werk van Daan van der Hoeven op deze pagina is in licentie gegeven volgens een Creative Commons Naamsvermelding 3.0 Nederland licentie.