UTF-8
From Wikipedia, the free encyclopedia
From Wikipedia, the free encyclopedia
UTF-8 (Unicode Transformation Format 8-bit) er en tabsfri indkodning af Unicode-tegnsættet. Den blev udviklet af Ken Thompson og Rob Pike den 2. september 1992 i New Jersey, USA.
UTF-8 anvender grupper af 8-bit bytes til at repræsentere Unicode-standarden for verdens mange forskellige alfabeter. UTF-8 er især anvendelig ved transport af e-post i 8-bits postsystemer.
Den bruger 1 – 6 bytes (eller 8 til 48 bit) per tegn – afhængig af Unicode-symbolet. Eksempelvis kræves kun én byte for at kunne kode alle 128 ASCII-tegn i Unicode intervallet: U+0000 til U+007F.
UTF-8 er i RFC 3629 (2003) blevet begrænset til 4 byte sekvenser, da dette er nok til at indkode hele unicode området fra U+0000 til U+10FFFF.
Tegn i intervallet U+0000 til U+007F, dvs. 7-bit ASCII indkodes uændret. Andre tegn indkodes ved at bruge 2 til 4 bytes, som alle er større end 7F.
Unicode interval hexadecimal |
Bit værdi binær |
UTF-8 binær |
Noter |
---|---|---|---|
000000–00007F 128 tegn |
0zzzzzzz | 0zzzzzzz | 7-bits ASCII område; byte begynder med en 0-bit |
syv z | syv z | ||
000080–0007FF 1920 tegn |
00000yyy yyzzzzzz | 110yyyyy 10zzzzzz | Første byte begynder med 110, den næste byte begynder med 10. |
tre y; to y, seks z | fem y; seks z | ||
000800–00FFFF 63488 tegn |
xxxxyyyy yyzzzzzz | 1110xxxx 10yyyyyy 10zzzzzz | Første byte begynder med 1110, de efterfølgende bytes begynder med 10. |
fire x,fire y; to y,seks z | fire x; seks y; seks z | ||
010000–1FFFFF 2.031.616 tegn |
000vvvxx xxxxyyyy yyzzzzzz | 11110vvv 10xxxxxx 10yyyyyy 10zzzzzz | Første byte begynder med 11110, de efterfølgende bytes begynder med 10. |
tre v, to x; fire x, fire y; to y, seks z | tre v; seks x; seks y; seks z | ||
00200000–03FFFFFF 65.011.712 tegn |
000000uu vvvvvvxx xxxxyyyy yyzzzzzz | 111110uu 10vvvvvv 10xxxxxx 10yyyyyy 10zzzzzz | Første byte begynder med 111110, de efterfølgende bytes begynder med 10. |
to u, seks v, to x; fire x, fire y; to y, seks z | to u, seks v; seks x; seks y; seks z | ||
04000000–7FFFFFFF 1.073.741.824 tegn |
0tuuuuuu vvvvvvxx xxxxyyyy yyzzzzzz | 1111110t 10uuuuuu 10vvvvvv 10xxxxxx 10yyyyyy 10zzzzzz | Første byte begynder med 1111110, de efterfølgende bytes begynder med 10. |
et t, seks u, seks v, to x; fire x, fire y; to y, seks z | et t, seks u, seks v; seks x; seks y; seks z |
Da unicode er begrænset til U+10FFFF stopper standarden (RFC 3629) i dag ved fire byte sekvenser, selvom længere sekvenser tidligere har været defineret.
Følgende byteværdier kan således ikke forekomme i en UTF-8 streng i henhold til standarden
Værdi (binær) | Værdi (hexadecimal) | Noter |
---|---|---|
1100000x | C0, C1 | Forkert indkodning af værdier mindre end 7F. Byten indikerer starten af en 2 byte sekvens, men værdien er mindre end 7F. |
1111111x | FE, FF | Ulovlig: start byte for en 7/8 byte sekvens. |
111110xx 1111110x |
F8, F9, FA, FB, FC, FD | Fjernet af RFC 3629: start byte for en 5/6 byte sekvens. |
11110101 1111011x |
F5, F6, F7 | Fjernet af RFC 3629: start byte for værdier mellem 10FFFF og 1FFFFF. |
Generelle fordele
Generelle ulemper
Fordele sammenlignet med UTF-16
Ulemper sammenlignet med UTF-16
![]() | Spire Denne artikel om datalogi eller et datalogi-relateret emne er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den. |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.