Használata
- Válassza a „Szöveg → bájtok” lehetőséget a kódoláshoz, vagy a „Bájtok → szöveg” lehetőséget a dekódoláshoz.
- Válasszon bájtformátumot: bináris, hexadecimális, decimális vagy oktális.
- Gépelje be vagy illessze be a bemenetet. Az eredmény és a bájtszám gépelés közben frissül.
- Másolja ki az eredményt, vagy cserélje be bemenetként, hogy ellenőrizze az oda-vissza alakítást.
Hogyan működik
A számítógépek bájtokban tárolják a szöveget. Ez az eszköz az UTF-8 kódolást használja, amelyet szinte minden weboldal és modern rendszer használ. Az UTF-8-ban a 128 ASCII karakter (angol betűk, számjegyek és alapvető írásjelek) egy-egy bájtot foglalnak el, így a H binárisan 01001000, hexadecimálisan pedig 48. Az összes többi karakter két-négy bájtot használ: az é 2 bájt (C3 A9), a € és a ☕ 3 bájt, a legtöbb emoji pedig 4 bájt. Ezért fordulhat elő, hogy a bájtok száma nagyobb, mint a karakterek száma, és ezért alakulhat át egy karakter több 8 bites csoporttá.
Minden bájt négy elterjedt módon írható fel: 8 jegyű bináris (00000000–11111111), 2 jegyű hexadecimális (00–FF), decimális (0–255) vagy 3 jegyű oktális (000–377) formában. Ha a bájtokat elválasztójelek nélkül írjuk, a bináris, hexadecimális és oktális értékeket rögzített hosszúságúra egészítjük ki, a decimális értékeket pedig 3 számjegyre, hogy egyértelműen szétválaszthatók legyenek.
A dekódolás megengedő a formázással szemben: a bájtok közötti szóközök, sortörések, vesszők és pontosvesszők figyelmen kívül maradnak, csakúgy, mint a 0x és 0b előtagok, valamint a \x escape-szekvenciák. A program minden csoportot ellenőriz; ha egy számjegy nem megengedett a kiválasztott formátumban, vagy az érték nagyobb 255-nél, a bájt pozíciójával együtt hibát jelez. A dekódolás után ellenőrzi, hogy a bájtok érvényes UTF-8 szöveget alkotnak-e, és jelzi, ha nem szövegről van szó.
A több kódpontból álló karakterek, például a zászlók vagy a bőrtónusú emojik itt több karakternek számítanak, mert minden kódpont külön kódolódik.
Példák
A klasszikus „Hi” binárisan
A H ASCII-kódja 72, az i betűé 105, így a „Hi” binárisan 01001000 01101001, hexadecimálisan 48 69, decimálisan pedig 72 105 lesz: 2 karakter, 2 bájt, 16 bit.
Miért 5 bájt a „Café”?
A C, az a és az f karakter egyenként 1 bájt, az é viszont 2 bájt UTF-8-ban: 11000011 10101001 (C3 A9). A szó 4 karakterből áll, de 5 bájtot foglal, ami számít az adatbázis-oszlopok méretkorlátjainál és a bájtban mért protokollmezőknél.
Hex dump olvasása
A debugger ezt mutatja: 48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c. Illessze be a „Bájtok → szöveg” és a Hexadecimális beállítással, hogy ezt kapja: „Hello, 世界”; minden kínai karakter 3 bájt.
Gyakori kérdések
Miért lesz egyetlen karakterből 16, 24 vagy 32 bit?
Az UTF-8-ban csak az ASCII-karakterek férnek el egyetlen bájtban (8 bit). Az ékezetes betűk és a legtöbb más ábécé karakterei 2 bájtot használnak, a kínai, a japán, a koreai és sok szimbólum 3-at, az emojik pedig 4-et. Minden bájt külön csoportként látható.
Ez ASCII vagy UTF-8?
UTF-8. Egyszerű angol szöveg esetén az eredmény megegyezik az ASCII-vel, mert az UTF-8-ot úgy tervezték, hogy kompatibilis legyen vele. Az ASCII-n kívüli karaktereket az ASCII önmagában nem tudná ábrázolni.
Miért kapok hibát a bináris dekódolásakor?
Minden bájtnak legfeljebb 8 bináris számjegyből kell állnia, és csak 0-t és 1-et tartalmazhat. Szóközök nélkül a számjegyek számának 8 többszörösének kell lennie. A hibaüzenet megnevezi a beolvashatatlan bájtot.
Mit jelent az, hogy „nem érvényes UTF-8”?
A bájtok nem alkotnak érvényes UTF-8 sorozatot, például egy magányos 127 feletti bájt vagy egy közben félbeszakadt sorozat. Az adat lehet, hogy más kódolású fájlból származik, például Windows-1252, vagy egyáltalán nem szöveg.
Adatvédelem
Az átalakítás a böngészőjében fut, annak beépített UTF-8 kódolójával és dekódolójával. A szöveget nem töltjük fel, nem tároljuk, és nem használjuk fel elemzésekhez.