Come convertire da hex a testo
- Incolla la tua stringa hex, ad es.
48 65 6C 6C 6F,0x48,0x65o\x48\x65. Funziona qualsiasi combinazione di separatori. - Il testo decodificato appare subito. Se i caratteri sembrano sbagliati, scegli un'altra codifica: UTF-8, ASCII/Latin-1 o UTF-16.
- Copia il testo o scaricalo come file. Premi Inverti per riconvertire il testo in hex.
Come funziona la decodifica da hex ad ASCII
Ogni coppia di cifre hex è un byte con un valore da 00 a FF. In ASCII e UTF-8 i byte da 20 a 7E sono caratteri stampabili, quindi 48 65 6C 6C 6F si legge H, e, l, l, o: “Hello”. In UTF-8 i caratteri non ASCII occupano più byte.
| Hex | Carattere |
|---|---|
0A | Avanzamento riga (a capo) |
0D | Ritorno carrello |
20 | Spazio |
21 / 2C / 2E | ! / , / . |
30–39 | Cifre 0–9 |
41–5A | Lettere maiuscole A–Z |
61–7A | Lettere minuscole a–z |
C3 A9 | é in UTF-8 |
E2 82 AC | € in UTF-8 |
Come scegliere la codifica giusta
- UTF-8 – lo standard sul web e nella maggior parte di file e API. Il semplice testo ASCII è anche UTF-8 valido.
- ASCII / Latin-1 (Windows-1252) – un byte per carattere, per testi dell'Europa occidentale provenienti da sistemi meno recenti. Ogni byte corrisponde a un carattere, quindi la decodifica non fallisce mai.
- UTF-16 LE/BE – due byte per carattere, usato dalle API di Windows e dalle stringhe di Java e JavaScript:
48 00 69 00è “Hi” in UTF-16 LE.
Se vedi simboli �, alcuni byte non sono validi nella codifica selezionata – oppure l'hex contiene dati binari, come un'immagine, un hash o dati compressi, anziché testo.
Convertire hex in stringa nel codice
- Python:
bytes.fromhex('48656c6c6f').decode() - Node.js:
Buffer.from('48656c6c6f', 'hex').toString() - JavaScript nel browser:
new TextDecoder().decode(Uint8Array.from('48656c6c6f'.match(/../g), (h) => parseInt(h, 16))) - Linux e macOS:
echo 48656c6c6f | xxd -r -p
Domande frequenti
Che differenza c'è tra conversione da hex a testo e da hex ad ASCII?
L'ASCII comprende 128 caratteri (byte 00–7F): lettere inglesi, cifre e punteggiatura. La conversione da hex a testo include anche lettere accentate come à, è e ù, caratteri di altre lingue ed emoji, che l'UTF-8 memorizza in 2–4 byte. Per un testo senza accenti entrambe danno lo stesso risultato.
Perché ricevo un errore su un byte incompleto?
Ogni byte richiede esattamente due cifre hex. Un numero dispari di cifre di solito significa che manca uno zero iniziale (scrivi 0A, non A) o che un carattere è andato perso durante la copia. Il messaggio indica dove si trova il problema.
Posso decodificare hex che contiene i prefissi 0x o \x?
Sì. Prefissi come 0x, \x e %, oltre a spazi, a capo, virgole, due punti e trattini, vengono rimossi automaticamente, quindi puoi incollare direttamente array C, stringhe di byte Python e dump esadecimali.
I miei dati vengono caricati da qualche parte?
No. L'hex viene decodificato da JavaScript nel tuo browser e non lascia mai il tuo dispositivo.