bitlvl
SR

Tekst ⇄ binarno / heks / ASCII

Ukucajte tekst i vidite njegove bajtove, ili nalepite binarne, heks ili decimalne bajtove i pročitajte ih kao tekst. Tabela ispod prikazuje svaki znak, njegovu kodnu tačku i kako ga UTF-8 čuva.

Rezultati i poruke ovog alata prikazuju se na engleskom.

Tekst su brojevi

Računar čuva tekst kao brojeve. Svaki znak ima kodnu tačku (slovo A je 65, a je 97, 0 je 48), a kodiranje odlučuje kako taj broj postaje bajtovi. ASCII pokriva 128 znakova sa po jednim bajtom; Unicode pokriva više od milion, a UTF-8 je kodiranje koje ih zapisuje kao jedan do četiri bajta, pri čemu ASCII ostaje nepromenjen.

Tako je Hi 72 i 105, što je binarno 01001000 i 01101001, a heks 48 69. Slovo é je kodna tačka 233, ali se čuva kao dva bajta, C3 A9; znak za štikliranje ✓ su tri bajta, E2 9C 93; emodži je četiri.

Kako UTF-8 pakuje kodnu tačku

Opseg kodnih tačakaBajtovaRaspored bitova
U+0000 – U+007F10xxxxxxx
U+0080 – U+07FF2110xxxxx 10xxxxxx
U+0800 – U+FFFF31110xxxx 10xxxxxx 10xxxxxx
U+10000 – U+10FFFF411110xxx 10xxxxxx 10xxxxxx 10xxxxxx

Vodeći bitovi prvog bajta govore koliko je sekvenca dugačka, a svaki nastavljajući bajt počinje sa 10. Taj dizajn omogućava dekoderu da se ponovo sinhronizuje posle greške i zato UTF-8 tekst možete da pretražujete bajt po bajt.

ASCII referenca

Štampljivi ASCII ide od 32 (razmak) do 126 (~). Cifre su 48–57, velika slova 65–90, mala slova 97–122. Razlika između velikih i malih slova je tačno bit 5 (vrednost 32), zbog čega c | 0x20 pretvara ASCII slovo u malo. Kodovi 0–31 su kontrolni znakovi: 9 je tab, 10 je line feed, 13 je carriage return, 27 je escape.

Pitanja

Kako da ručno pretvorim tekst u binarno?

Nađite ASCII kod svakog znaka (A = 65), pa taj decimalni broj pretvorite u binarni i dopunite ga do 8 bitova: 65 = 01000001. Ne-ASCII znakovi prvo moraju da se pretvore u UTF-8 bajtove.

Zašto jedan znak postaje više od jednog bajta?

Zato što UTF-8 koristi 2, 3 ili 4 bajta za sve izvan ASCII-ja. é je C3 A9, 日 je E6 97 A5, 😀 je F0 9F 98 80. Tabela ispod alata to prikazuje po znaku.

Koja je binarna vrednost slova A?

01000001 (decimalno 65, heks 41). Malo a je 01100001 (97, heks 61): isto, sa postavljenim bitom 5.

Zašto binarno-u-tekst daje grešku?

Svaka grupa mora da bude bajt (8 binarnih cifara, ili vrednost 0–255), a bajtovi moraju da čine ispravan UTF-8. Usamljeni bajt iznad 127, ili nastavljajući bajt bez vodećeg, nije ispravan tekst.

Da li je ovo isto što i Base64?

Ne. Ovo prikazuje stvarne bajtove teksta u čitljivoj bazi. Base64 je drugačija, gušća šema za prenos proizvoljnih bajtova kao teksta. Pogledajte Base64 alat.