Basiskennis informatica/Codering/Unicode
Unicode
[bewerken]Voor West-Europese talen was de ASCII-codering werkbaar, maar niet in een internationale context: om alle talen te kunnen voorstellen, zijn er namelijk veel meer dan de 256 tekens die met ASCII mogelijk zijn. Om dit op te lossen werd Unicode ontwikkeld: een internationale standaard voor de binaire codering van tekens en symbolen ("karakters") van alle geschreven talen.
Naast letters en cijfers bevat Unicode ook veel symbolen, zoals: kruisen, wiskundige tekens, muntsymbolen enzovoort. Het bevat geen symbolen die niet in een schrift worden gebruikt, zoals verkeersborden. De standaard wordt onderhouden door het Unicode Consortium. De standaard bevat momenteel ruim 100.000 gestandaardiseerde tekens en ongeveer 900.000 voor toekomstig gebruik gereserveerde codes.
Om dit concreet te kunnen coderen op een pc biedt Unicode een aantal mogelijke coderingen:
- UTF-32: voor de codering worden 32 bits gebruikt (dit zijn dus 232 = ± 4 miljard mogelijkheden). Een nadeel is dat ASCII-bestanden in Unicode daardoor 4 keer zo groot worden.
- UTF-16: tekens worden opgeslagen als een of twee 16-bits getallen, afhankelijk van de hun toegekende waarde.
- UTF-8: tekens worden opgeslagen als een tot vier 8-bits getallen, afhankelijk van de hun toegekende waarde. In deze codering blijven ASCII-teksten onveranderd.
Om te weten in welke codering een bestand is opgeslagen, wordt vaak gebruik gemaakt van de Byte order mark (BOM). Zo merk je met een hex-editor dat een bestand gecodeerd in UTF-8 vaak begint met EF BB BF
, een bestand in UTF-16 vaak met FF FE
(of FE FF
bij Big-endian) en een bestand in UTF-32 vaak met 00 00 FE FF
(of FF FE 00 00
bij Big-endian)
Tweakers stapt over op UTF-8
Tweakers zet hun standaardtekencodering van latin-9 (ISO-8859-15) om naar UTF-8. Dat lijkt eenvoudig, maar ze wilden geen downtime, de code waar inhoud werd ge-output naar een tekencodering moest worden aangepast, alsook de wachtwoordenopslag (met een tussenstap voor gehashte wachtwoorden). De door hun gebruikte latin-9 had bovendien geen expliciete ondersteuning in de databank MySQL, wat de zaken ook bemoeilijkte. De eindgebruiker merkt hier niet veel van, tenzij bij het aanpassen van reacties/posts: bij latin-9 had je een html-entiteit zoals & # 127866 ;
nodig, maar nu kan dat met 🍺 rechtstreeks in UTF-8.
(nl) Tweakers stapt over op utf-8. tweakers.net (2019-01-14).