UTF-8

UTF-8
Származékos munka CESU-8 [d]
Teremtő Rob Pike és Ken Thompson
A mű vagy cím nyelve több nyelv [d]
nyitás dátuma 1992. szeptember 2. [1]
Hivatalos oldal unicode.org/faq/utf_bom.…
Leírva a linkben ibm.com/docs/en/i… ​(  angol)

Az UTF-8 (az angol  Unicode Transformation Format, 8-bit  - „Unicode transzformációs formátum, 8 bites”) egy általános karakterkódolási szabvány , amely lehetővé teszi Unicode karakterek kompaktabb tárolását és továbbítását változó számú bájt használatával (a 1–4), és teljes mértékben visszafelé kompatibilis a 7 bites ASCII kódolással . Az UTF-8 szabványt az RFC 3629 és az ISO/IEC 10646 D melléklet formalizálja.

Az UTF-8 kódolás most domináns a webes térben. A UNIX-szerű operációs rendszerekben is széles körben alkalmazták [2] .

Az UTF-8 formátumot 1992. szeptember 2-án fejlesztette ki Ken Thompson és Rob Pike , és a 9. tervben valósították meg [3] . A Windows kódolási azonosítója 65001 [4] .

Az UTF-8, az UTF-16- hoz képest , a legnagyobb tömörítési előnyt nyújtja a latin szövegeknél , mivel a diakritikus latin betűket , számokat és a leggyakoribb írásjeleket az UTF-8 csak egy bájttal kódolja, és ezeknek a karaktereknek a kódja megfelelnek az ASCII - beli kódjaiknak . [5] [6]

Kódolási algoritmus

Az UTF-8 kódolási algoritmusa az RFC 3629 szabványban van szabványosítva, és 3 szakaszból áll:

1. Határozza meg a karakter kódolásához szükséges oktett ( bájt ) számát. A karakterszám a Unicode szabványból származik.

Karakterszám-tartomány Szükséges számú oktett
00000000-0000007F egy
00000080-000007FF 2
00000800-0000FFFF 3
00010000-0010FFFF négy

U+0000A tól -ig számokat tartalmazó Unicode karakterek esetében U+007F(amelyek egy bájtot foglalnak el nullával a legjelentősebb bitben) az UTF-8 kódolás teljes mértékben megfelel a 7 bites US-ASCII kódolásnak.

2. Állítsa be az első oktett magas bitjeit az első lépésben meghatározott szükséges számú oktettnek megfelelően:

Ha egynél több oktettre van szükség a kódoláshoz, akkor a 2-4 oktettben a két legjelentősebb bit mindig 10 2 (10xxxxxx) lesz. Ez megkönnyíti az első oktett megkülönböztetését az adatfolyamban, mivel a magas bitjei soha nem 10 2 .

Nyoltok száma Jelentős darabok Minta
egy 7 0xxxxxxx
2 tizenegy 110xxxxx 10xxxxxx
3 16 1110xxxx 10xxxxxx 10xxxxxx
négy 21 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

3. Állítsa be az oktettek szignifikáns bitjeit úgy, hogy azok megfeleljenek a binárisan kifejezett Unicode karakterszámnak. Kezdje a kitöltést a karakterszám alacsony bitjeiről, helyezze azokat az utolsó oktett alacsony bitjébe, és folytassa jobbról balra az első oktettig. Az első oktett szabad bitjei, amelyek használaton kívül maradnak, nullákkal vannak feltöltve.

Kódolási példák

Szimbólum Bináris karakterkód UTF-8 binárisan UTF-8 hexadecimális formában
$ U+0024 0100100 00100100 24
¢ U+00A2 10100010 11000010 10100010 C2 A2
U+20AC 100000 10101100 11100010 10000010 10101100 E2 82 AC
🐍 U+10348 1 00000011 01001000 11110000 10010000 10001101 10001000 F0 90 8D 88

UTF-8 marker

Annak jelzésére, hogy egy fájl vagy adatfolyam Unicode-karaktereket tartalmaz, egy bájtsorrend-jelet (BOM) lehet beilleszteni a fájl vagy adatfolyam elejére , amely UTF -8-as kódolás esetén három bájtból áll : .  EF BB BF16

1. bájt 2. bájt 3. bájt
bináris kód 1110 1111 1011 1011 1011 1111
Hex kód EF BB BF

Ötödik és hatodik bájt

Kezdetben az UTF-8 kódolás legfeljebb hat bájtot engedélyezett egyetlen karakter kódolásához, de 2003 novemberében az RFC 3629 megtiltotta az ötödik és hatodik bájt használatát, és a kódolt karakterek tartománya a karakterre korlátozódott U+10FFFF. Ez az UTF-16-tal való kompatibilitás biztosítása érdekében történt.

Lehetséges dekódolási hibák

Nem minden bájtsorozat érvényes. Az UTF-8 dekódernek meg kell értenie és megfelelően kezelnie kell az alábbi hibákat:

Jegyzetek

  1. https://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt
  2. Weboldalak karakterkódolásainak használati statisztikái,  2011. június
  3. Archivált másolat (a hivatkozás nem elérhető) . Letöltve: 2007. február 27. Az eredetiből archiválva : 2011. március 1..    (Angol)
  4. Kódoldal-azonosítók – Windows alkalmazások | Microsoft dokumentumok . Letöltve: 2018. július 14. Az eredetiből archiválva : 2019. június 16.
  5. Nos, visszatértem. Húrelmélet . _ Robert O'Callahan (2008. március 1.). Letöltve: 2008. március 1. Az eredetiből archiválva : 2011. augusztus 23..  
  6. Rosztiszlav Csebikin. Minden kódolás kódolása. UTF-8: modern, hozzáértő, kényelmes. . HTML és CSS . Letöltve: 2009. március 22. Az eredetiből archiválva : 2011. augusztus 23..

Linkek