Vita:UTF-8

Legutóbb hozzászólt 94.27.129.38 3 évvel ezelőtt a(z) 4, 6 vagy 7 byte témában
Ez a szócikk témája miatt az Informatikai műhely érdeklődési körébe tartozik.
Bátran kapcsolódj be a szerkesztésébe!
Jól használható Ez a szócikk jól használható besorolást kapott a kidolgozottsági skálán.
Nagyon fontos Ez a szócikk nagyon fontos besorolást kapott a műhely fontossági skáláján.
Értékelő szerkesztő: Zafir (vita), értékelés dátuma: 2012. június 3.
Informatikai szócikkek Wikipédia:Cikkértékelési műhely/Index

izlandi, sved kiveve, mert szerintem az ISO 8859-1 lefedi ezeket. Ha valaki maskent tudja, irja ide, illetve javitsa. Kösz, 2005. február 12., 11:12 (CET)

Jogos, izlandi és svéd is van a latin1-ben. --grin 2005. február 13., 02:45 (CET)Válasz

Unicode standard, UTF-8 szerkesztés

A Unicode standard szerint egy karakter a 0x0..0x10FFFF tartományba esik. (Unicode 4.0, p.5) Ennek a kódolására 4 byte elegendő UTF-8 kódolással.

Egy 32-bites érték UTF-8-szerű kódolása is maximum 7 byte-ot foglal (aki nem hiszi, számoljon utána).

4, 6 vagy 7 byte szerkesztés

(Áthozva Javító vita vitalapjáról ekkor: 2010. január 10., 15:47 (CET))Válasz

Szia! Mire alapozod, hogy az UTF-8 lehet 6 bájtos? Az rfc3629 kifejezetten 1-4 bájtot ír (pontosabban az UTF-16 által leírható U+0000..U+10FFFF tartományt, ami még az UTF-8-cal 4 bájton kódolható tartománynak is alig több, mint a fele). Amit a hátrányról írtál, azt pedig egyáltalán nem értem. Milyen tömörítési eljárás? – TgrvitaIRCWPPR 2010. január 8., 20:20 (CET)Válasz


Tudomásom szerint, az Unicode kódolás karakterenként 4 byte-on jelöli a "karakternek" az értékes jegyeit. Az UTF-8 kódolás lehagyja a nullákat a karakterek elejéről, és így spórol helyet a kisebb számoknál, azonban a byte-ok elején valahol jelölni kell a hovatartozásukat, ezért hogyha egy olyan karaktert ütsz be, amelynél az Unicode már egy olyan 4 bytes számot feltet meg, ami 1-el kezdődik, akkor az utf-8 "hovatartozási" jelivel együtt összesen már 6 byte-ot is elfoglal.

00000000 00000000 00000000 0xxxxxxx <-> 0xxxxxxx
00000000 00000000 00000xxx xxxxxxxx <-> 110xxxxx 10xxxxxx
00000000 00000000 xxxxxxxx xxxxxxxx <-> 1110xxxx 10xxxxxx 10xxxxxx
00000000 000xxxxx xxxxxxxx xxxxxxxx <-> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
000000xx xxxxxxxx xxxxxxxx xxxxxxxx <-> 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
0xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx <-> 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

Forrás --Javító vita 2010. január 8., 20:38 (CET)Válasz

A Unicode önmagában nem kódolás, hanem egy betűket definiáló szabvány; amire te gondolsz, az az UTF-32. Elvben tényleg lehetne alkalmazni az UTF-8 logikáját hat bájtra (sőt, hétre is, és akkor leírhatná mind a 2^32 négy bájton elkódolható kódpontot), a gyakorlatban némi nyomozás után ez tűnik az autoritatív definíciónak (92. oldal végétől), és ez egyértelműen 4 bájtban definiálja a jólformált UTF-8 kódegységet. Ha jól értem, a régebbi ISO/IEC 10646 szabvány még hat bájtról beszélt, részben innen származik a keveredés. – TgrvitaIRCWPPR 2010. január 8., 23:37 (CET)Válasz

Az Unicode meghatározza hogy milyen betűnek hányas száma van. Ezt max 4 bytes számokig teszi. Erre gondoltam.
Szerintem, tekintve hogy az algoritmus 6byte-ig tökéletesen működik, és majd minden program értelmezi is, nem a szabvány a mérvadó, hanem a tényleges működés. A 7. byte azért nem nagyon működhet mert (még?) nincs olyan karakter ami oda kerülne, és azért egy kicsi kavarás bekerül, mert több mint 4 byte-ot ír le:
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx <-> 11111110 100000xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
Bár biztosan előfordul ilyen is egy-egy elvetemült dokumentumban, szerintem a max 6 byte jellemzőbb. Jelölhetünk 7 byte-ot is, de ettől függetlenül a 4 a gyakorlatban gond nélkül átléphető, specifikáció ide vagy oda. --Javító vita 2010. január 9., 09:25 (CET)Válasz

Nos, az UTF-8 specifikáció szerint jelenleg valóban 4 byte-ig nőhet az UTF-8 mérete, de ha az Unicode táblába újabb karakterek kerülnek be, előfordulhat ennek átlépése, és ezeknek az értelmezését a legtöbb helyen javasolják is, egy esetleges későbbi módosításra való felkészülésként. Javaslom a leírásban maradjon 4 byte és a lapra valahova kerüljön be egy megjegyzés, az UTF-8 esetleges nagyobbra növekedésével kapcsolatban.--Javító vita 2010. január 9., 09:40 (CET)Válasz

Ezt az egészet át kéne tenni a Unicode szócikk vitalapjára. Túl sok értékes információ van itt, hogy csak úgy elsüllyedjen egy szerkesztői vitalap archívumában. Bináris ide  Kampány a számok helyes írásáért 2010. január 9., 10:00 (CET)Válasz

31 biteshez 6 byte elegendő. De valójában 32 biteshez is: 111111xx, majd 5-ször 10xxxxxx. Tehát a teljes UTF-32-höz elég 6 byte. A magyar ékezetes karakterekhez 2 byte elég, az ékezet nélküliekhez 1, aminek a kódja elfér 16 biten ahhoz 3: például a matematikai szimbólumokhoz. 94.27.129.38 (vita) 2020. december 23., 13:59 (CET)Válasz

Visszatérés a(z) „UTF-8” laphoz.