Unicode: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
k →Sorteren: UTF-16 sorteert prima binnen hetzelfde plane, en ook tussen non-BMP-planes |
|||
Regel 71:
== Codering ==
De Unicodestandaard kent aan elk teken een nummer toe, [[codepunt]] genoemd, dat geschreven wordt als U+''xxxx
Unicode biedt verschillende coderingsvormen (''encoding forms'') om de scalaire waarden te representeren, onder andere:
* [[UTF-32]]: Een code-eenheid (''code unit'') heeft 32 bits. Tekens worden opgeslagen in één code-eenheid. Een nadeel is dat ook kleine scalaire waarden vier bytes vergen.
* [[UTF-16]]: Een code-eenheid heeft 16 bits. Tekens worden opgeslagen in een of twee code-eenheden, de lagere in een, de hogere in twee. UTF-16 is een uitbreiding van [[UCS-2]], de codering van Unicode t/m versie 1.1. Voor de tekens die worden opgeslagen in twee code-eenheden worden alleen de 2048 16-bits getallen gebruikt die niet afzonderlijk worden gebruikt voor de opslag van een teken. Daardoor blijven er 63.488 16-bits getallen over voor opslag van een teken in één code-eenheid. Van de genoemde 2048 16-bits getallen worden er 1024 uitsluitend gebruikt als eerste van de twee 16-bits getallen die een teken representeren, en 1024 uitsluitend als tweede, wat 1.048.576 combinaties oplevert, voor even zoveel scalaire waarden. Zo'n combinatie wordt een ''surrogaatpaar'' genoemd.
Regel 86:
|-
|U+0000..U+007F<br />(128 = 0x80 ASCII-equivalenten)
|00000000 00000000<br />00000000
|00000000
|0''aaaaaaa''
|
|-
|U+0080..U+07FF<br />(1.920 = 0x780 scalaire waarden)
|00000000 00000000<br />
|
|110''bbbaa'' 10''aaaaaa''
|
|-
|U+0800..U+D7FF en U+E000..U+FFFF<br />(61.440 = 0xF000 scalaire waarden, de resterende in het [[Basic Multilingual Plane]])
|00000000 00000000 <br />''bbbbbbbb aaaaaaaa''
|''bbbbbbbb aaaaaaaa''
|1110''bbbb'' 10''bbbbaa'' 10''aaaaaa''
|
|-
|U+010000..U+10FFFF<br />(1.048.576 = 0x100000 supplementaire codepunten)
|00000000
|
|11110''ccc'' 10''ccbbbb'' 10''bbbbaa'' 10''aaaaaa''
|''dddd'' = ''ccccc''
|}
|