ASCII, ANSI en Unicode

De Basis
In de computer worden letters gerepresenteerd door numerieke codes. Als de computer een code van 100 (decimaal) tegenkomt, dan representeert dat een kleine 'd'. Er bestaat alleen nog wel onduidelijkheid over de code 250 en hier bestaat dan nogal wat wrijving.

ASCII en ANSI
Voor de Windows generatie, DOS gebaseerde systemen maakte gebruik van de ASCII karakterset (charset). Deze karakterset is een 7-bit standaard die bestaat sinds eind 1950. Het definieert 128 verschillende karakters, wat meer dan genoeg is voor het Nederlands of Engels: klein- en hoofdletters, punctuaties, nummers, control codes (control-c) en niet printbare codes zoals tab, return en backspace.

Windows 3.x en later maken gebruik van de ANSI (American national Standards Institute) karakterset, welke 128 "uitgebreide" of bijkomende karaketers toevoegd. In de meeste ANSI fonts is bijvoorbeeld het uitgebreide karaketer (C) (copyright symbool) toegevoegd.

ASCII en ANSI zijn goed te gebruiken zolang het gaat om West-Europa. Deze twee zijn redlijk gelimiteerd omdat zij een bereik hebben van 256 letters. Er is dus geen ruimte voor andere symbolen uit andere talen.

Unicode
Unicode kent de limitaties die ASCII en ANSI hebben niet door voldoende ruimte te bieden voor meer dan een miljoen verschillende symbolen. Net zoals ASCII en ANSI kent elk karakter een code (nummer). Het Russische ? is in uUnicode 042F en de Koreaanse ? is 20A9. Merk op dat alle nummers van Unicode hexadecimaal zijn. Belangrijk bij unicode is dat de koppeling (mapping) van de numerieke code en karakter is consistent over de gehele wereld.

Het verschil tussen UTF-8 en UTF-16
UTF-8 (Unicode (of UCS) Transformation Format) gebruikt een variabele byte om een Unicode in op te slaan. In een verschillend code bereik, heeft het zijn eigen code lengte, variërend van 1 byte tot 16 bytes. Omdat het varieert van 8 bits (= 1 byte) is het zo genoemd: "UTF-8". UTF-8 is geschikt voor internet, netwerken en sommige applicaties die een trage verbinding hebben.

UTF-16 is de Unicode Transformation Format die een Unicode serialiseert als een volgorde van twee bytes, in of big-endion of klien-endoan formaat. Omdat het gegroepeerd is bij 16-bits (= 2 bytes) wordt het UTF-16 genoemd, welke de meest gebruikte standaard is.

Reacties

Populaire posts van deze blog

[SQL Server] varchar vs nvarchar

MS Sql 70-461: Chapter 5

[C#] Class serialiseren en deserialiseren