Command Palette

Search for a command to run...

Tabella ASCII: La guida completa ai codici dei caratteri (0255)

Tabella ASCII: La guida completa ai codici dei caratteri (0255)

T
Toolz Team
|Aug 23, 2026|15 min letto

Parte della raccolta binario e esadecimale

La prima volta che ASCII contava davvero per me, stavo eseguendo il debug di un'importazione CSV per un plugin WordPress che continuava a dividere un indirizzo customer's in due righe Il file sembrava a posto in ogni editor in cui l'ho aperto Si è scoperto che un'esportazione aveva utilizzato un ritorno a carrello nudo (codice 13) come fine riga mentre il mio parser si aspettava un feed di riga (codice 10) e un separatore di record vaganti (codice 30) si era insinuato da un'esportazione mainframe a monte Nessuno di quei caratteri stampa nulla Non puoi vederli solo se hai una tabella che trasforma il byte invisibile in un numero e un nome - che è esattamente il motivo per cui ho costruito il TAVOLA ASCII su Toolz.dev e perché lo tengo appuntato in una scheda del browser.

tl; dr: ASCII mappa ogni carattere inglese e un insieme di segnali di controllo ai numeri 0 127 di base; insiemi estesi come ISO 8859-1 (latino-1) riempiono 128255. Capitale A ha 65 anni, minuscolo a è 97, lo spazio è 32 e il & quot; invisibile; i codici 0& quot 31 sono caratteri di controllo come UTF-8, JSON e ogni linguaggio di programmazione restituiscono (13) Se riesci a leggere la tabella, puoi decodificare quasi tutti i bug di codifica del testo, sfuggire a qualsiasi carattere in HTML e capire perché UTF-8, JSON e ogni linguaggio di programmazione si comportano come fanno con le stringhe.

I & #39; ho passato anni a costruire cose che vivono e muoiono sulla gestione del testo - un plugin di amministrazione WordPress, API Laravel, front-end React - e posso dirti che un modello mentale funzionante di ASCII consente di risparmiare più ore di debug di quasi ogni altro pezzo di conoscenza di basso livello Questa guida è la versione che vorrei qualcuno mi avesse consegnato in anticipo.

Cos'è ASCII e perché ha ancora importanza?

ASCII sta per American Standard Code for Information Interchange. Fu standardizzato per la prima volta nel 1963 e inserito nella forma che utilizziamo ancora come ANSI X3.4-1986 (pubblicata anche a livello internazionale come ISO/IEC 646), e la definizione di rete ancora citata oggi lo è RFC20 (1969) Al suo centro è una tabella di ricerca: una mappatura dai numeri da 0 a 127 a un insieme specifico di caratteri e segnali di controllo Sette bit, 128 slot, un accordo che l'intero mondo informatico potrebbe condividere.

Quell'accordo è la ragione per cui un file di testo scritto su un server Linux nel 1990 si apre ancora oggi correttamente su un computer portatile Mac Prima dei codici dei caratteri standard, ogni produttore aveva il proprio schema e spostare il testo tra le macchine era un problema di traduzione ASCII ha fissato i 128 codici inferiori in atto, e da allora non si è mai mosso.

Ciò che sorprende le persone è quanto del moderno computing poggi ancora direttamente su di esso Unicode - il gigantesco standard che copre emoji, cinese, arabo e ogni altro script - rende deliberatamente i suoi primi 128 punti di codice identici all'ASCII UTF-8, la codifica che alimenta il web, codifica quei primi 128 punti di codice come singoli byte con gli esatti valori ASCII Quindi un semplice file di testo ASCII è anche un file UTF-8 valido, byte per byte Quando si capisce ASCII, hai capito le fondamenta su cui è costruito il resto della codifica del testo.

Come è organizzato il tavolo ASCII?

I 128 codici standard rientrano in pochi gruppi naturali e conoscere il gruppo è spesso più utile che memorizzare un singolo valore.

Caratteri di controllo (031 e 127). Questi sono i codici non di stampa Portano istruzioni piuttosto che glifi: null (0), bell (7), backspace (8), linguetta orizzontale (9), line feed (10), ritorno a capo (13), escape (27) ed delete (127) sono quelli che tu' incontreranno effettivamente Sono stati progettati per guidare macchine telescriventi e i loro fantasmi eseguono ancora di tutto, dalle terminazioni di riga nei file di origine alle sequenze di escape che colorano l'output del terminale.

Simboli di punteggiatura e punteggiatura stampabili (32 punteggiatura 47, 5864, 9196, 12326). Lo spazio è 32 - il codice stampabile più basso, e tecnicamente un carattere di stampa anche se non mostra nulla Il resto sono i simboli sparsi intorno alla tastiera: ! ha 33 anni, @ ha 64 anni, ~ è 126.

Cifre (4857). I personaggi 0 da parte a parte 9 siediti in una corsa ordinata da 48 a 57. Quell'ordine è deliberato: sottrai 48 da una cifra's codice e ottieni il suo valore numerico, che è il modo in cui quasi ogni & quot; analizza un numero da una stringa" inizia la routine.

Lettere maiuscole (65 lettere maiuscole 90) e minuscole (9722). A ha 65 anni, Z è 90; a ha 97 anni, z è 122. Il divario tra una lettera e #39; la forma maiuscola e minuscola è sempre esattamente 32.

L'intervallo esteso (128255) è un animale diverso e it' è dove vive la maggior confusione, quindi ottiene la propria sezione di seguito.

Qual è la differenza tra ASCII e ASCII esteso?

L'ASCII standard definisce solo 128 codici perché utilizza solo sette bit. Ma i computer memorizzano il testo in byte da otto bit, il che lascia inutilizzati dallo standard 128 slot extra interi (128 slot 255). " ASCII&quot esteso; è il termine generico per i vari schemi che riempiono quegli slot.

Il problema - e it' è grande - è che non esiste un unico ASCII esteso Diverse code page assegnano i 128 codici superiori in modo completamente diverso IBM' la code page 437 mette lì i caratteri di disegno a scatola Windows-1252 mette virgolette ricci e il segno dell'euro. ISO/IEC 8859-1, noto come Latin-1, mette lì le lettere accentate dell'Europa occidentale. Un byte con valore 233 è é in latino-1, ma qualcos'altro interamente nella code page 437.

Su toolz. mostro l'assegnazione ISO 8859-1 (Latin-1) per i codici 160dev255, perché è un vero e proprio standard pubblicato ed è la base del set di caratteri HTML originale - che significa che le entità HTML nominate rivestono i codici 128159 in Latin-1 sono un secondo blocco di caratteri di controllo (i controlli & quot; C1"), quindi lo strumento li etichetta come tali anziché fingere che siano ' stampabili.

La lezione pratica: quando qualcuno dice & quot;extended ASCII, & quot; chiedi sempre quale. Una code page non corrispondente è la classica causa del é mojibake si vede quando un file UTF-8 viene letto come Latin-1, o le caselle mancanti-glifi quando avviene il contrario Comprensione privacy dei dati e come gli strumenti gestiscono il tuo testo è una preoccupazione; capire come i byte vengono mappati ai caratteri è l'altra metà di non essere mai più sorpresi da testo confuso.

Perché maiuscole e minuscole differiscono esattamente di 32?

Questo è il mio pezzo preferito di design ASCII, perché it' non è un incidente - it's ingegneria Il layout è stato scelto in modo che una lettera's forme maiuscole e minuscole differiscano solo nel bit 5, che ha il valore 32. A fa 65 anni (binario 01000001); a è 97 (binario 01100001). L'unica differenza è quel singolo bit.

Tale decisione significa che un programma può cambiare caso con un'operazione bit a bit invece di una tabella di ricerca Per maiuscole una lettera minuscola, cancellare il bit 5 (code & ~32); per minuscolo uno maiuscolo, impostalo (code | 32); per scambiare il caso in entrambi i casi, capovolgerlo (code ^ 32). Decenni di librerie di stringhe sono state costruite su quel trucco prima di Unicode' le regole dei casi più complesse lo rendevano pericoloso per qualsiasi cosa oltre il semplice ASCII. Quando sfogli la tabella e noti che ogni lettera maiuscola si trova esattamente 32 sotto il suo gemello minuscolo, tu' stai guardando una decisione presa negli anni '60 che modella ancora il modo in cui viene scritto il software.

Come faccio a convertire tra caratteri, decimale, esadecimale e binario?

Ogni codice ASCII ha quattro rappresentazioni comuni e spostarsi tra di loro è una parte di routine del lavoro di basso livello. Qui' è il modo in cui si relazionano per la lettera H:

Rappresentazione Valore per H Dove tu' lo vedrò
carattere H testo normale
decimale 72 String.fromCharCode(72), chr(72)
esadecimale 48 Dump esagonali, \x48, codifica URL/percentuale
ottale 110 Strumenti Unix più vecchi, \110 fuoriuscire
binario 01001000 Operazioni bit a bit, progettazione del protocollo

Per scrivere una parola da hex, prendi ogni coppia di cifre esadecimali come un byte: 48 69 fa 72 105 in decimale, che è Hi. Per andare dall'altra parte, cerca ogni carattere's code. il TAVOLA ASCII fa entrambe le direzioni: mostra tutte e cinque le colonne per ogni codice e la sua casella di ricerca accetta un carattere, un numero decimale, un valore esadecimale (con o senza a 0x prefisso), una stringa ottale o binaria o anche un nome di entità HTML, quindi digitando &, 38, o amp salta tutti sulla e commerciale.

Se tu' converti regolarmente intere stringhe o lavori su basi numeriche oltre ASCII, il traduttore binario E il Convertitore di numeri sono gli strumenti di accompagnamento a cui mi rivolgo La tabella ASCII è il riferimento; quei due sono i banchi da lavoro.

A cosa servono effettivamente i caratteri di controllo ASCII?

I codici non di stampa 031 (più 127) sembrano pezzi da museo, ma molti di essi funzionano quotidianamente.

Alimentazione di linea (10) e ritorno del carrello (13) sono i due grandi Su una telescrivente, il ritorno a capo ha spostato la testina di stampa indietro al margine sinistro e il feed di riga ha fatto avanzare la carta di una riga - due azioni fisiche separate. Questa eredità è il motivo per cui i file di testo di Windows terminano le righe con entrambi (CRLF, 13 poi 10), mentre Unix e macOS utilizzano solo line feed (LF, 10). Quasi ogni & quot; perché il mio file è pieno di ^M personaggi?" bug risale a questa divisione Il mio disastro CSV dall'intro era esattamente questo.

Scheda orizzontale (9) è il carattere della scheda: un singolo byte che gli editor eseguono il rendering in più spazi. Nullo (0) termina le stringhe in C e segna & quot; nessun dato" in innumerevoli formati. Fuga (27) introduce le sequenze di controllo che muovono il cursore e colorano il terminale. Campana (7) una volta suonava un vero campanello; ora emette un segnale acustico o lampeggia sulla finestra del terminale.

Il motivo per cui una buona tabella nomina questi codici è importante: quando trovi un byte 27 seduto nei tuoi dati, & quot; ESC - Escape" ti dice immediatamente che tu' stai guardando una sequenza di controllo del terminale, non un testo corrotto Un numero grezzo ti lascerebbe indovinare.

Come si relaziona ASCII con le entità HTML e l'evasione sicura?

Se scrivi per il web - e costruire un solido toolkit per sviluppatori significa che lo farai: una manciata di caratteri ASCII devono sfuggire in modo che il browser non lo faccia&#39; non interpretarli erroneamente come markup. Il segno meno che < (60), maggiore di > (62), e commerciale & (38), e doppia citazione " (34) sono i quattro pericolosi Lasciati grezzi all'interno dell'HTML possono rompere la tua pagina o aprire un foro di iniezione; scritti come entità (&lt;, &gt;, &amp;, &quot;) rendono come caratteri letterali.

Ogni codice ha anche un'entità HTML numerica nel modulo &#code;quindi anche un carattere senza entità nominata può sempre essere scritto in modo sicuro La tabella ASCII elenca l'entità nominata dove esiste e la forma numerica altrimenti, e facendo clic sulla colonna HTML la copia direttamente negli appunti Quando è necessario codificare o decodificare un intero blocco di markup anziché cercare un singolo carattere, il Entità HTML tool gestisce il lavoro batch Per un tour più profondo delle utilità di codifica che uso giorno per giorno, il Guida agli strumenti di codifica cammina attraverso tutto il set.

La tabella ASCII è uguale a Unicode?

No, ma loro&#39; sono deliberatamente compatibili e vale la pena mettere le cose in chiaro. Unicode è uno standard molto più ampio: oltre un milione di possibili punti di codice, che coprono ogni sistema di scrittura più simboli ed emoji. ASCII, con i suoi 128 codici, è un piccolo sottoinsieme. Ciò che li fa suonare bene insieme è che Unicode&#39; i primi 128 punti di codice sono definiti identici ad ASCII e UTF-8 codifica esattamente quei 128 come singoli byte con i loro valori ASCII.

La conseguenza è elegante: qualsiasi file ASCII valido è automaticamente un file UTF-8 valido Non devi mai convertire del testo semplice inglese tra i due Nel momento in cui passi oltre il codice 127 - una lettera accentata, una citazione a ricciolo, un'emoji - lasci ASCII alle spalle e tu&#39; sei saldamente in territorio Unicode multi-byte, dove un carattere può occupare due, tre o quattro byte La tabella ASCII di Toolz.dev copre direttamente gli intervalli ASCII e Latin-1 e il suo codificatore di testo riporta il punto di codice Unicode per qualsiasi carattere che incolli al di là di essi, in modo da poter vedere esattamente dove finisce ASCII e prende il sopravvento Unicode.

Domande frequenti

Cos'è ASCII?

ASCII (American Standard Code for Information Interchange) è uno standard di codifica dei caratteri che mappa lettere, cifre, punteggiatura e segnali di controllo ai numeri 0–127. È stato standardizzato come ANSI X3.4 nel 1963 e rimane la base delle moderne codifiche di testo, tra cui UTF-8, i cui primi 128 punti di codice sono identici all'ASCII.

Qual è il valore ASCII di & quot;A&quot;?

La lettera maiuscola & quot; A& quot; ha il valore ASCII 65 (hex 41, ottale 101, binario 01000001). Minuscolo & quot;a&quot; è 97 - esattamente 32 più alto - motivo per cui il bit di ribaltamento 5 commuta una lettera tra maiuscolo e minuscolo.

Qual è la differenza tra ASCII e ASCII esteso?

ASCII standard 7 bit e definisce 128 codici (0quot 127). &quot; ASCII&quot esteso; utilizza l'ottavo bit per aggiungere altri 12 codici (12 box 855) per lettere acc, simboli e caratteri di disegno Non esiste un singolo ASCII esteso - diverse code page assegnano la metà superiore in modo diverso Questa tabella mostra l'assegnazione ISO 8859-1 (Latin-1), la base del set di caratteri HTML Latin-1.

Cosa sono i caratteri di controllo ASCII?

I codici 0–31 e 127 sono caratteri di controllo non stampati che trasportano istruzioni anziché glifi visibili. Quelli comuni includono l'alimentazione di linea (10), il ritorno del carrello (13), la scheda orizzontale (9), l'escape (27) e il nullo (0). Originariamente controllavano le macchine di teletipi e terminano ancora le linee, delimitano i campi e le sequenze di escape terminali di guida oggi.

Come faccio a convertire l'esadecimale in ASCII?

Ogni coppia di cifre esadecimali rappresenta un byte, che viene mappato su un codice ASCII. L'esagono 48 è 72 in decimale, che è & quot; H&quot;; l'esagono 69 è 105, che è & quot; i&quot; - quindi 48 69 incantesimi & quot; Hi&quot; Cerca nella tabella ASCII il valore esadecimale (con o senza prefisso 0x) per trovare istantaneamente il carattere corrispondente.

Perché maiuscole differisce da minuscolo di 32 in ASCII?

ASCII è stato strutturato in modo tale che l'unica differenza tra una lettera e n. 39;s maiuscola e minuscola è bit 5 (il valore 32). & quot;A&quot; è 65 e &quot;a&quot; è 97; & quot;Z&quot; è 90 e &quot;z&quot; è 122. Questo design deliberato consente ai programmi di cambiare caso con una singola operazione bit a bit anziché con una tabella di ricerca.

La tabella ASCII è uguale a Unicode?

Non è lo stesso, ma compatibile Unicode è uno standard molto più grande che copre più di un milione di punti di codice in ogni sistema di scrittura I suoi primi 128 punti di codice sono identici ad ASCII, e UTF-8 li codifica come singoli byte, quindi anche il testo ASCII valido è UTF-8 La tabella ASCII copre gli intervalli ASCII e Latin-1; il suo codificatore riporta i punti di codice Unicode per i caratteri oltre di essi.

Il mio testo è privato quando uso la Tabella ASCII?

Sì. L'intera tabella viene generata nel browser in JavaScript semplice e qualsiasi testo incollato nel codificatore viene elaborato localmente: non viene mai caricato, registrato o archiviato e lo strumento continua a funzionare senza connessione di rete una volta caricata la pagina.


Scritto da Liton, costruttore di [Toolz.dev](/, WP Adminify e una lunga serie di progetti Laravel e React che, prima o poi, si sono ridotti a ottenere i byte giusti.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!