bitlvl
IT

Testo ⇄ binario / hex / ASCII

Scrivi del testo e vedi i suoi byte, oppure incolla byte binari, hex o decimali e leggili come testo. La tabella sotto mostra ogni carattere, il suo code point e come lo memorizza UTF-8.

I risultati e i messaggi di questo strumento sono mostrati in inglese.

Il testo è fatto di numeri

Un computer memorizza il testo come numeri. Ogni carattere ha un code point (la lettera A è 65, a è 97, 0 è 48), e una codifica decide come quel numero diventa byte. ASCII copre 128 caratteri con un byte ciascuno; Unicode ne copre più di un milione, e UTF-8 è la codifica che li scrive con da uno a quattro byte mantenendo ASCII invariato.

Quindi Hi è 72 e 105, che in binario sono 01001000 e 01101001, e in hex 48 69. La é accentata è il code point 233 ma viene memorizzata come due byte, C3 A9; il segno di spunta ✓ sono tre byte, E2 9C 93; un’emoji sono quattro.

Come UTF-8 impacchetta un code point

Intervallo di code pointByteDisposizione dei bit
U+0000 – U+007F10xxxxxxx
U+0080 – U+07FF2110xxxxx 10xxxxxx
U+0800 – U+FFFF31110xxxx 10xxxxxx 10xxxxxx
U+10000 – U+10FFFF411110xxx 10xxxxxx 10xxxxxx 10xxxxxx

I bit iniziali del primo byte dicono quanto è lunga la sequenza, e ogni byte di continuazione inizia con 10. Questo design permette a un decodificatore di risincronizzarsi dopo un errore ed è il motivo per cui si può cercare in un testo UTF-8 byte per byte.

Riferimento ASCII

L’ASCII stampabile va da 32 (spazio) a 126 (~). Le cifre sono 48–57, le lettere maiuscole 65–90, le minuscole 97–122. La differenza tra maiuscole e minuscole è esattamente il bit 5 (valore 32), ed è per questo che c | 0x20 rende minuscola una lettera ASCII. I codici 0–31 sono caratteri di controllo: 9 è tab, 10 è line feed, 13 è carriage return, 27 è escape.

Domande

Come converto testo in binario a mano?

Cerca il codice ASCII di ogni carattere (A = 65), poi converti quel numero decimale in binario e completalo a 8 bit: 65 = 01000001. I caratteri non ASCII vanno prima trasformati in byte UTF-8.

Perché un carattere diventa più di un byte?

Perché UTF-8 usa 2, 3 o 4 byte per tutto ciò che è fuori da ASCII. é è C3 A9, 日 è E6 97 A5, 😀 è F0 9F 98 80. La tabella sotto lo strumento lo mostra per ogni carattere.

Qual è il binario della lettera A?

01000001 (decimale 65, hex 41). La a minuscola è 01100001 (97, hex 61): la stessa con il bit 5 impostato.

Perché da binario a testo dà errore?

Ogni gruppo deve essere un byte (8 cifre binarie, o un valore 0–255), e i byte devono formare UTF-8 valido. Un byte isolato sopra 127, o un byte di continuazione senza byte iniziale, non è testo valido.

È la stessa cosa di Base64?

No. Qui si vedono i byte reali del testo in una base leggibile. Base64 è uno schema diverso e più denso per trasportare byte arbitrari come testo. Vedi lo strumento Base64.