UTF-8

A Programozás Wiki wikiből

Az UTF-8 az angol Unicode Transformation format rövidítése. Egy karakterkódolási formát jelöl, amivel a teljes Unicode karakterkészlet ábrázolható (ez 2^21=2097152 karakterhelyet jelent).

A kódolás változó hosszúságú, vagyis egy karaktert vagy egy bájt, vagy néhány (legfeljebb 4) bájt sorozata kódol. Az ASCII karakterek kódja megegyezik az ASCII kódokkal, ezért a csak latin betűkkel írt szövegek változatlanul maradnak, a latintól kevés karakterben eltérőek (ilyen például a magyar) felismerhetőek maradnak a kódolás után.

Az ASCII-től eltérő kódú karaktereket az UTF-8 a következőképpen ábrázolja: Az első bájt felső bitjei (annyi, ahány bájtot a kód elfoglal) 1-ek, a következő bit 0, utána szerepelnek a maximum 21 bites kód legfelsőbb értékes bitjei. A további bájtok felső két bitje 10, az azt követő bitek pedig a kód további bitjeit tartalmazzák. Fontos szabály, hogy a kód nem lehet hosszabb a minimálisan szükségesnél, például egy kérdőjelet nem szabad 3F helyett C0 BF (vagy E0 C0 BF stb) szekvenciával ábrázolni, az ilyen inputot pedig hibásként el kell utasítani.

Az UTF-8 fontos előnyei (ASCII kompatibilitás, Unicode lefedettség, aránylag tömör ábrázolás) és kevés hátránya (nehezebb szövegfeldolgozás) miatt igen népszerű a mai rendszerekben. Az elterjedt platformok támogatják, van, ahol alapértelmezett kódolásként szolgál.

Példa[szerkesztés]

Az alábbi példában

 S  á     r  g  á     n     v  i  r  á     g  z  i  k     a     t  ö     k
 53 C3 A1 72 67 C3 A1 6E 20 76 69 72 C3 A1 67 7A 69 6B 20 61 20 74 C3 B6 6B

az á kódja C3 A1 = 11000011 10100001 Az első bájt 2 felső bitje 1, vagyis a kód kétbájtos. Utána egy 0, majd 00011 következik. A második bájt felső két bitje 10, ezt 100001 követi, tehát a karakter 32-bites kódja 00011 100001, vagyis 11100001, tehát a karakter az U+00E1, ami valóban a kis á.

Története[szerkesztés]

  • 1992-ben a Plan 9 operációs rendszerben született meg az UTF-8.
  • 2001 környékén kezdett Linux operációs rendszer szoftvereiben terjedni. A legtöbb disztribúció teljes átállásra azonban 2006-ig várni kellett.
  • 2009 nyarán került bele a FreeBSD-be a rendszer szintű UTF8 támogatás.
  • 2010 nyarán az igen konzervatív OpenBSD-be is megérkezett az UTF-8 támogatás.