UTF-8 vs UTF-16
UTF står for Unicode Transformation Format. Det er en familie av standarder for koding av Unicode tegnesettet i sin ekvivalente binære verdi. UTF ble utviklet slik at brukerne har en standardisert måte å kode på tegnene med minimal plass. UTF-8 og UTF 16 er bare to av de etablerte standardene for koding. De varierer bare i hvor mange byte de bruker til å kode hver karakter. Siden begge er koding med variabel bredde, kan de bruke opptil fire byte for å kode inn dataene, men når det gjelder minimum, bruker UTF-8 bare 1 byte (8bit) og UTF-16 bruker 2 byte (16bit). Dette har stor innvirkning på den resulterende størrelsen på de kodede filene. Når du bruker bare ASCII-tegn, vil en UTF-16-kodet fil være omtrent dobbelt så stor som den samme filen som er kodet med UTF-8.
Den største fordelen med UTF-8 er at den er bakoverkompatibel med ASCII. ASCII-tegnsettet er fast bredde og bruker bare en byte. Når du koder en fil som bare bruker ASCII-tegn med UTF-8, vil den resulterende filen være identisk med en fil som er kodet med ASCII. Dette er ikke mulig når du bruker UTF-16 da hvert tegn vil være to bytes lang. Eldre programvare som ikke er kjent med Unicode, kunne ikke åpne UTF-16-filen selv om den bare hadde ASCII-tegn.
UTF-8 er byte-orientert format og har derfor ingen problemer med byte-orienterte nettverk eller fil. UTF-16, derimot, er ikke byteorientert og må etablere en byteordre for å kunne arbeide med byteorienterte nettverk. UTF-8 er også bedre i å gjenopprette fra feil som korrupter deler av filen eller strømmen, fordi den fortsatt kan dekode neste ukomprimerte byte. UTF-16 gjør akkurat det samme hvis noen byte er skadet, men problemet ligger når noen byte går tapt. Den tapte byten kan blande opp følgende bytekombinasjoner, og sluttresultatet vil bli ødelagt.
Sammendrag:
1. UTF-8 og UTF-16 brukes begge til koding av tegn
2. UTF-8 bruker en byte som minimum ved koding av tegnene mens UTF-16 bruker to
3. En UTF-8-kodet fil har en tendens til å være mindre enn en UTF-16-kodet fil
4. UTF-8 er kompatibel med ASCII mens UTF-16 er uforenlig med ASCII
5. UTF-8 er byte orientert mens UTF-16 ikke er
6. UTF-8 er bedre å gjenopprette fra feil enn UTF-16