Wat is UTF-8 en wat zijn de voordelen ervan?

Started by Superdaantje, February 21, 2007, 03:22:15 AM

Previous topic - Next topic

Superdaantje

QuoteUTF-8 (8-bit Unicode Transformation Format) is een manier om Unicode/ISO 10646-tekens op te slaan als een stroom van bytes, een zogenaamde tekencodering. Het alternatief heet UTF-16.

UTF-8 is een tekencodering met een variabele lengte: niet elk teken gebruikt evenveel bytes. Afhankelijk van het teken worden tussen 1 en 4 bytes gebruikt. Voor het vastleggen van elk van de 128 ASCII-tekens is slechts één byte nodig.

Hoewel het niet efficiënt lijkt om Unicodetekens in 4 bytes te moeten coderen, is het zo dat UTF-8 eenvoudig in gebruik is omdat de codering van een tekst met uitsluitend ASCII-tekens in ASCII en UTF-8 gelijk is.

Beschrijving

UTF-8 is gestandaardiseerd als RFC 3629 (UTF-8, a transformation format of ISO 10646).

Samenvattend worden de Unicodetekens in groepen bits ingedeeld, die worden verdeeld over de lage bits van de UTF-8-bytes.

Tekens 0-127, de ASCII-tekens, kunnen direct worden gecodeerd in een byte met het hoogste bit 0. Voor andere tekens zijn tot 4 bytes nodig. Alle bytes voor zulke tekens hebben het hoogste bit 1, zodat verwarring met de ASCII-tekens wordt voorkomen.
Codegebied
hexadecimaal    UTF-16    UTF-8
binair    Opmerking
000000 - 00007F    00000000 0xxxxxxx    0xxxxxxx    ASCII equivalenten; byte begint met nulbit
000080 - 0007FF    00000xxx xxxxxxxx    110xxxxx 10xxxxxx    eerste byte begint met 110, tweede met 10
000800 - 00FFFF    xxxxxxxx xxxxxxxx    1110xxxx 10xxxxxx 10xxxxxx    eerste byte begint met 1110, volgende met 10
010000 - 10FFFF    110110xx xxxxxxxx
110111xx xxxxxxxx    11110xxx 10xxxxxx 10xxxxxx 10xxxxxx    eerste byte begint met 11110, volgende met 10

Voordelen
    * Omdat veel westerse letters slechts 1 byte in beslag nemen, is UTF-8 voor westerse talen compacter dan het eenvoudigere UTF-16.
    * Het is veel eenvoudiger om Unixsystemen compatibel te maken met UTF-8 dan met UTF-16, bijvoorbeeld omdat UTF-16 veel nulbytes bevat die in ASCII-systemen een speciale betekenis hebben.
    * UTF-8-strings kunnen worden gesorteerd alsof ze byte-strings zijn.
    * Woordbreekroutines voor ASCII werken met UTF-8 correct zonder wijziging.
    * De variabele lengte van de tekens in UTF-8 is makkelijk te decoderen.
    * UTF-8 is de standaardcodering voor XML-bestanden.

Nadelen
    * De variabele lengte maakt het lastiger om direct met tekenstrings te werken in veel programmeertalen. Dit kan worden opgelost door hiervoor de juiste bibliotheken te gebruiken.
    * Veel oosterse karakters gebruiken 3 bytes in UTF-8 terwijl ze slechts 2 bytes zouden gebruiken in UTF-16. Hierdoor wordt tekst in deze talen groter dan noodzakelijk.
Greetz
Superdaantje.nl

.
Joomlabridge.org SMF Bridge Support, Downloads and Joomla Video Tutorials

julien

Wat betekent dit dat in normale mensen taal?  :D
Ik heb een nederlandstalig forum met zo'n 1200 leden en momenteel 14.000 berichten. Haal ik hier dan voordel uit door alles te converteren?

Superdaantje

Denk dat je dat het beste kan vragen in de Support fora  O:)
Greetz
Superdaantje.nl

.
Joomlabridge.org SMF Bridge Support, Downloads and Joomla Video Tutorials

Advertisement: