Utilia

Text na binárny kód, hex a ASCII

Prevádzaj text na binárne, hexadecimálne, desiatkové či osmičkové kódy a späť, s bajtmi UTF-8 alebo kódovými bodmi Unicode, oddeľovačmi a tabuľkou znakov.

Znaky
0
Kódové body
0
Bajty UTF-8
0
Tabuľka znakov
ZnakKódový bodDesiatkovoUTF-8 (hex)UTF-8 (binárne)

Ako používať prevodník textu na binárny kód

  1. Napíš alebo vlož text do vstupného poľa a klikni na Text → kódy. Výsledok sa zobrazí pod ním a aktualizuje sa počas písania.
  2. Vyber Formát: Binárny (základ 2), Hexadecimálny (základ 16), Desiatkový (základ 10) alebo Osmičkový (základ 8).
  3. V časti Kódy predstavujú nechaj Bajty UTF-8 (kompatibilné s ASCII) pre obvyklý výstup „text na binárny kód“, alebo vyber Kódové body Unicode, ak chceš jedno číslo na znak.
  4. Vyber Oddeľovač (Medzera, Žiadny, Čiarka alebo Nový riadok) a zaškrtni Pridať predponu (0b, 0o, 0x), ak potrebuješ kódy zapísané tak, ako ich očakávajú programovacie jazyky.
  5. Opačným smerom ideš tak, že vložíš kódy a klikneš na Kódy → text. Nástroj pri prepnutí hádá formát a ty ho môžeš opraviť v poli Formát.

Kopírovať skopíruje výsledok a Použiť výsledok ako vstup presunie výsledok do vstupného poľa a obráti smer, čo je rýchly spôsob, ako overiť okružný prevod. Tabuľka znakov uvádza každý znak s jeho kódovým bodom, desiatkovou hodnotou a bajtmi UTF-8 v hex aj v binárnom zápise.

ASCII, Unicode a UTF-8

Počítače ukladajú text ako čísla. ASCII, definované v 60. rokoch, priraďuje číslo od 0 do 127 anglickým písmenám, číslicám, interpunkcii a niekoľkým riadiacim znakom: „H“ je 72, čo je 01001000 binárne a 48 hexadecimálne. ASCII nemá miesto pre á, č, ž, € ani emoji, preto sa dnes používa Unicode, ktorý dáva každému znaku kódový bod zapisovaný napríklad ako U+00E9 pre é.

UTF-8 je spôsob, akým takmer každá webová stránka a súbor ukladá tieto kódové body ako bajty. Jeho kľúčovou vlastnosťou je kompatibilita: 128 znakov ASCII si ponecháva jeden bajt, takže „Hello“ dá v ASCII aj v UTF-8 presne ten istý binárny zápis. Ostatné znaky zaberajú 2 až 4 bajty: é je C3 A9 (dva bajty), € je E2 82 AC (tri) a 😀 je F0 9F 98 80 (štyri). Slovenské písmená s diakritikou (á, č, ľ, š, ž, ô…) zaberajú dva bajty. Nástroj ti povie, koľko znakov leží mimo ASCII, a počítadlá ukazujú počet Znaky, Kódové body a Bajty UTF-8. Tie sa môžu líšiť: 👍🏽 je jeden viditeľný znak zložený z dvoch kódových bodov a ôsmich bajtov.

Dekódovanie kódov späť na text

Pri dekódovaní môžu byť kódy oddelené medzerami, čiarkami, bodkočiarkami alebo zalomeniami riadkov. Predpony ako 0b, 0x, \x, U+ a entity HTML ako H či H sa odstránia automaticky. Binárne a hexadecimálne bajty môžeš vložiť aj bez oddeľovačov: 0100100001101001 sa rozdelí na skupiny po 8 bitov a c3a9 na dvojice hexadecimálnych číslic.

Nástroj skontroluje každý kód a presne ti povie, ktorý je zlý: číslica, ktorá nepatrí do zvolenej sústavy, bajt nad 255, skupina, ktorú nemožno rovnomerne rozdeliť, alebo kódový bod za U+10FFFF. Ak sú bajty platné čísla, ale netvoria platné UTF-8 (napríklad C3 nasledované 28), text sa aj tak zobrazí s � namiesto poškodenej sekvencie a správa vysvetlí prečo.

Príklady

  • „Hi“ binárne: 01001000 01101001
  • „Hi“ hexadecimálne: 48 69
  • „Hi“ desiatkovo: 72 105
  • „é“ ako bajty UTF-8 v hex: C3 A9; ako kódový bod: E9

Často kladené otázky

Aký je rozdiel medzi ASCII a binárnym kódom?

ASCII je tabuľka, ktorá priraďuje čísla znakom. Binárny zápis je len spôsob, ako tieto čísla napísať pomocou 0 a 1. Previesť text na binárny kód znamená vyhľadať číslo každého znaku a zapísať ho v sústave so základom 2.

Prečo zaberá é 16 bitov namiesto 8?

V UTF-8 sa do jedného bajtu zmestí iba 128 znakov ASCII. Písmená s diakritikou potrebujú dva bajty, takže é sa zmení na 11000011 10101001. S voľbou Kódové body Unicode je é jediné číslo 11101001 (233).

Dá sa dekódovať binárny kód bez medzier?

Áno, pre bajty v binárnom alebo hexadecimálnom zápise, pokiaľ je dĺžka násobkom 8 bitov alebo 2 hexadecimálnych číslic. Desiatkové kódy potrebujú oddeľovač, ak nie je každý zapísaný presne troma číslicami.

Ktorá voľba zodpovedá „text na hex“ v programovaní?

Bajty UTF-8 v hexadecimálnom zápise. Dá rovnaký výsledok ako kódovanie reťazca do UTF-8 v Pythone, JavaScripte alebo vo väčšine iných jazykov.

Nahráva sa môj text?

Nie. Prevod prebieha celý v tvojom prehliadači; nič sa neodosiela cez sieť.