Utilia

Text na binární kód, hex a ASCII

Převeď text na binární, šestnáctkový, desítkový nebo osmičkový kód a zpět, s bajty UTF-8 či kódovými body Unicode, oddělovači a tabulkou znaků.

Znaky
0
Kódové body
0
Bajty UTF-8
0
Tabulka znaků
ZnakKódový bodDesítkověUTF-8 (hex)UTF-8 (binárně)

Jak používat převod textu na binární kód

  1. Napiš nebo vlož text do vstupního pole a klikni na Text → kódy. Výsledek se objeví níže a při psaní se aktualizuje.
  2. Vyber Formát: Binární (základ 2), Šestnáctkový (základ 16), Desítkový (základ 10) nebo Osmičkový (základ 8).
  3. V části Kódy představují nech Bajty UTF-8 (kompatibilní s ASCII) pro obvyklý výstup „text na binární kód“, nebo vyber Kódové body Unicode, aby každý znak dostal jedno číslo.
  4. Vyber Oddělovač (Mezera, Žádný, Čárka nebo Nový řádek) a zaškrtni Přidat předponu (0b, 0o, 0x), pokud kódy potřebuješ zapsané tak, jak je čekají programovací jazyky.
  5. Opačným směrem vlož kódy a klikni na Kódy → text. Nástroj při přepnutí formát odhadne a ty ho můžeš opravit ve Formátu.

Kopírovat zkopíruje výsledek a Použít výsledek jako vstup přesune výsledek do vstupního pole a obrátí směr, což je rychlý způsob, jak ověřit převod tam a zpět. Tabulka znaků vypisuje každý znak s jeho kódovým bodem, desítkovou hodnotou a bajty UTF-8 v hex a binárně.

ASCII, Unicode a UTF-8

Počítače ukládají text jako čísla. ASCII, definované v 60. letech, přiřazuje číslo od 0 do 127 anglickým písmenům, číslicím, interpunkci a několika řídicím znakům: „H“ je 72, což je binárně 01001000 a hexadecimálně 48. ASCII nemá místo pro á, č, ř, € ani emotikony, proto se dnes používá Unicode, který dává každému znaku kódový bod zapisovaný například U+00E9 pro é.

UTF-8 je způsob, jakým téměř každá webová stránka a soubor ukládá tyto kódové body jako bajty. Jeho hlavní vlastností je kompatibilita: 128 znaků ASCII si zachovává jediný bajt, takže „Hello“ dá v ASCII i v UTF-8 přesně stejný binární zápis. Ostatní znaky zabírají 2 až 4 bajty: é je C3 A9 (dva bajty), € je E2 82 AC (tři) a 😀 je F0 9F 98 80 (čtyři). Nástroj ti řekne, kolik znaků leží mimo ASCII, a počitadla ukazují počet Znaky, Kódové body a Bajty UTF-8. Mohou se lišit: 👍🏽 je jeden viditelný znak složený ze dvou kódových bodů a osmi bajtů.

Dekódování kódů zpět na text

Při dekódování lze kódy oddělit mezerami, čárkami, středníky nebo zalomením řádků. Předpony jako 0b, 0x, \x, U+ a HTML entity jako H nebo H se odstraní automaticky. Binární a šestnáctkové bajty lze vložit i bez oddělovačů: 0100100001101001 se rozdělí na skupiny po 8 bitech a c3a9 na dvojice hex číslic.

Nástroj zkontroluje každý kód a přesně ti řekne, který je špatně: číslice, která do zvolené soustavy nepatří, bajt nad 255, skupina, kterou nelze rovnoměrně rozdělit, nebo kódový bod za U+10FFFF. Pokud jsou bajty platná čísla, ale netvoří platné UTF-8 (například C3 následované 28), text se přesto zobrazí se znakem � na místě poškozené sekvence a zpráva vysvětlí proč.

Příklady

  • „Hi“ binárně: 01001000 01101001
  • „Hi“ šestnáctkově: 48 69
  • „Hi“ desítkově: 72 105
  • „é“ jako bajty UTF-8 v hex: C3 A9; jako kódový bod: E9

Časté dotazy

Jaký je rozdíl mezi ASCII a binárním kódem?

ASCII je tabulka, která přiřazuje čísla znakům. Binární kód je jen způsob zápisu těchto čísel pomocí 0 a 1. Převést text na binární kód znamená dohledat číslo každého znaku a zapsat ho v soustavě o základu 2.

Proč zabírá é 16 bitů místo 8?

V UTF-8 se do jednoho bajtu vejde jen 128 znaků ASCII. Písmena s diakritikou potřebují dva bajty, takže é se stane 11000011 10101001. S volbou Kódové body Unicode je é jediné číslo 11101001 (233).

Mohu dekódovat binární kód bez mezer?

Ano, u bajtů v binárním nebo šestnáctkovém zápisu, pokud je délka násobkem 8 bitů nebo 2 hex číslic. Desítkové kódy potřebují oddělovač, pokud není každý zapsán přesně třemi číslicemi.

Která volba odpovídá „text na hex“ v programování?

Bajty UTF-8 v šestnáctkovém zápisu. Dává stejný výsledek jako zakódování řetězce do UTF-8 v Pythonu, JavaScriptu a většině jiných jazyků.

Nahrává se můj text?

Ne. Převod běží výhradně ve tvém prohlížeči; po síti se nic neodesílá.