ASCII, UTF-8, ISO-8859 … Je hebt deze vreemde monikers misschien rond zien zweven, maar wat bedoelen ze eigenlijk? Lees verder terwijl we uitleggen wat tekencodering is en hoe deze acroniemen zich verhouden tot de platte tekst die we op het scherm zien.
Fundamentele bouwstenen
Als we het hebben over geschreven taal, hebben we het over letters als de bouwstenen van woorden, die vervolgens zinnen, alinea’s enzovoort vormen. Letters zijn symbolen die geluiden vertegenwoordigen. Als je het over taal hebt, heb je het over groepen geluiden die samenkomen om een ​​soort betekenis te vormen. Elk taalsysteem heeft een complexe reeks regels en definities die deze betekenissen beheersen. Als je een woord hebt, is het nutteloos tenzij je weet uit welke taal het komt en je het gebruikt met anderen die die taal spreken.
(Vergelijking van Grantha-, Tulu- en Malayalam-scripts, afbeelding van Wikipedia)
In de wereld van computers gebruiken we de term ‘karakter’. Een personage is een soort abstract concept, gedefinieerd door specifieke parameters, maar het is de fundamentele betekeniseenheid. De Latijnse ‘A’ is niet hetzelfde als een Griekse ‘alfa’ of een Arabische ‘alif’ omdat ze verschillende contexten hebben – ze komen uit verschillende talen en hebben enigszins verschillende uitspraken – dus we kunnen zeggen dat het verschillende karakters zijn. De visuele weergave van een teken wordt een “glyph” genoemd en verschillende sets glyphs worden fonts genoemd. Groepen personages behoren tot een ‘set’ of een ‘repertoire’.
Als je een alinea typt en het lettertype verandert, verander je niet de fonetische waarden van de letters, maar verander je hoe ze eruitzien. Het is gewoon cosmetisch (maar niet onbelangrijk!). Sommige talen, zoals het oude Egyptisch en Chinees, hebben ideogrammen; deze vertegenwoordigen hele ideeën in plaats van geluiden, en hun uitspraken kunnen variëren in tijd en afstand. Als je het ene teken door het andere vervangt, vervang je een idee. Het is meer dan alleen letters veranderen, het verandert een ideogram.
Tekencodering
(Afbeelding van Wikipedia)
Als u iets op het toetsenbord typt of een bestand laadt, hoe weet de computer dan wat er moet worden weergegeven? Dat is waar karaktercodering voor is. Tekst op uw computer is eigenlijk geen letters, het is een reeks gepaarde alfanumerieke waarden. De tekencodering fungeert als een sleutel waarvoor waarden overeenkomen met welke tekens, net zoals spelling dicteert welke geluiden overeenkomen met welke letters. Morsecode is een soort tekencodering. Het legt uit hoe groepen lange en korte eenheden, zoals piepjes, karakters vertegenwoordigen. In morsecode zijn de tekens alleen Engelse letters, cijfers en punten. Er zijn veel computertekencoderingen die zich vertalen in letters, cijfers, accenttekens, leestekens, internationale symbolen, enzovoort.
Vaak wordt over dit onderwerp ook de term “codepagina’s” gebruikt. Het zijn in wezen karaktercoderingen zoals gebruikt door specifieke bedrijven, vaak met kleine aanpassingen. De codepagina van Windows 1252 (voorheen bekend als ANSI 1252) is bijvoorbeeld een gewijzigde vorm van ISO-8859-1. Ze worden meestal gebruikt als een intern systeem om te verwijzen naar standaard en gewijzigde tekencoderingen die specifiek zijn voor dezelfde systemen. In het begin was tekencodering niet zo belangrijk omdat computers niet met elkaar communiceerden. Nu internet steeds populairder wordt en netwerken steeds vaker voorkomt, wordt het een steeds belangrijker onderdeel van ons dagelijks leven zonder dat we het ons zelfs maar realiseren.
Veel verschillende soorten
(Afbeelding van sarah sosiak)
Er zijn veel verschillende karaktercoderingen beschikbaar, en daar zijn genoeg redenen voor. Welke tekencodering u kiest, hangt af van uw behoeften. Als u in het Russisch communiceert, is het logisch om een ​​tekencodering te gebruiken die Cyrillisch goed ondersteunt. Als je in het Koreaans communiceert, wil je iets dat Hangul en Hanja goed vertegenwoordigt. Als je een wiskundige bent, dan wil je iets waarin alle wetenschappelijke en wiskundige symbolen goed worden weergegeven, evenals de Griekse en Latijnse tekens. Als je een grappenmaker bent, heb je misschien baat bij ondersteboven tekst. En als u wilt dat al deze soorten documenten door een bepaalde persoon worden bekeken, wilt u een codering die vrij algemeen en gemakkelijk toegankelijk is.
Laten we eens kijken naar enkele van de meest voorkomende.
(Fragment van ASCII-tabel, afbeelding van asciitable.com)
- ASCII – De American Standard Code for Information Interchange is een van de oudere tekencoderingen. Het was oorspronkelijk bedacht op basis van telegrafische codes en is in de loop van de tijd geëvolueerd om meer symbolen en een aantal nu verouderde niet-gedrukte besturingstekens te bevatten. Het is waarschijnlijk zo eenvoudig als je kunt krijgen in termen van moderne systemen, omdat het beperkt is tot het Latijnse alfabet zonder tekens met accenten. De 7-bits codering maakt slechts 128 tekens mogelijk, daarom zijn er over de hele wereld verschillende niet-officiële varianten in gebruik.
- ISO-8859 – De meest gebruikte groep tekencoderingen van de International Organization for Standardization is nummer 8859. Elke specifieke codering wordt aangeduid met een nummer, vaak voorafgegaan door een beschrijvende naam, bijvoorbeeld ISO-8859-3 (Latin-3), ISO-8859-6 (Latijn / Arabisch). Het is een superset van ASCII, wat betekent dat de eerste 128 waarden in de codering hetzelfde zijn als ASCII. Het is echter 8-bits en biedt plaats aan 256 tekens, dus het bouwt vanaf daar voort en bevat een veel bredere reeks tekens, waarbij elke specifieke codering zich richt op een andere set criteria. Latin-1 bevatte een aantal letters en symbolen met accenten, maar werd later vervangen door een herziene set genaamd Latin-9 met bijgewerkte glyphs zoals het eurosymbool.
(Fragment uit het Tibetaans schrift, Unicode v4, van unicode.org)
- Unicode – Deze coderingsstandaard is gericht op universaliteit. Het bevat momenteel 93 scripts die in verschillende blokken zijn georganiseerd, en er zijn er nog veel in de maak. Unicode werkt anders dan andere tekensets: in plaats van rechtstreeks voor een glyph te coderen, wordt elke waarde verder naar een “codepunt” geleid. Dit zijn hexadecimale waarden die overeenkomen met karakters, maar de glyphs zelf worden op een losse manier geleverd door het programma, zoals je webbrowser. Deze codepunten worden gewoonlijk als volgt weergegeven: U + 0040 (wat zich vertaalt naar ‘@’). Specifieke coderingen onder de Unicode-standaard zijn UTF-8 en UTF-16. UTF-8 probeert maximale compatibiliteit met ASCII mogelijk te maken. Het is 8-bits, maar staat alle tekens toe via een vervangingsmechanisme en meerdere paren waarden per teken. UTF-16 sluit perfecte ASCII-compatibiliteit af voor een completere 16-bits compatibiliteit met de standaard.
- ISO-10646 – Dit is geen echte codering, maar een tekenset van Unicode die is gestandaardiseerd door de ISO. Het is vooral belangrijk omdat het het tekenrepertoire is dat door HTML wordt gebruikt. Enkele van de meer geavanceerde functies van Unicode die sorteren en rechts-naar-links naast links-naar-rechts scripts mogelijk maken, ontbreken. Toch werkt het erg goed voor gebruik op internet, omdat het het gebruik van een grote verscheidenheid aan scripts mogelijk maakt en de browser de glyphs kan interpreteren. Dit maakt lokalisatie iets gemakkelijker.
Welke codering moet ik gebruiken?
ASCII werkt voor de meeste Engelssprekenden, maar niet voor veel anders. U zult vaker ISO-8859-1 zien, dat werkt voor de meeste West-Europese talen. De andere versies van ISO-8859 werken voor Cyrillisch, Arabisch, Grieks of andere specifieke scripts. Als u echter meerdere scripts in hetzelfde document of op dezelfde webpagina wilt weergeven, zorgt UTF-8 voor een veel betere compatibiliteit. Het werkt ook heel goed voor mensen die de juiste interpunctie, wiskundige symbolen of standaardtekens gebruiken, zoals vierkanten en selectievakjes.
(Meerdere talen in één document, screenshot van gujaratsamachar.com)
Elke set heeft echter nadelen. ASCII is beperkt in zijn leestekens, dus het werkt niet ongelooflijk goed voor typografisch correcte bewerkingen. Heb je ooit copy / paste vanuit Word getypt om een ​​rare combinatie van glyphs te hebben? Dat is het nadeel van ISO-8859, of beter gezegd, de veronderstelde interoperabiliteit met OS-specifieke codepagina’s (we kijken naar JIJ, Microsoft!). Het grootste nadeel van UTF-8 is het gebrek aan goede ondersteuning bij het bewerken en publiceren van applicaties. Een ander probleem is dat browsers vaak de bytevolgordemarkering van een UTF-8-gecodeerd teken niet interpreteren en alleen weergeven. Dit resulteert in het weergeven van ongewenste symbolen. En natuurlijk maakt het declareren van de ene codering en het gebruik van tekens van een andere zonder ze correct op een webpagina te declareren / ernaar te verwijzen, het voor browsers moeilijk om ze correct weer te geven en voor zoekmachines om ze op de juiste manier te indexeren.
Voor uw eigen documenten, manuscripten, enzovoort, kunt u alles gebruiken wat u nodig heeft om de klus te klaren. Wat het web betreft, lijkt het erop dat de meeste mensen het eens zijn over het gebruik van een UTF-8-versie die geen bytevolgordemarkering gebruikt, maar dat is niet helemaal unaniem. Zoals u kunt zien, heeft elke tekencodering zijn eigen gebruik, context en sterke en zwakke punten. Als eindgebruiker heb je hier waarschijnlijk niet mee te maken, maar nu kun je desgewenst een extra stap voorwaarts zetten.