Le altre risposte definiscono abbastanza bene cosa è ASCII e cosa è non-ASCÌI. Vorrei aggiungere un po' di background e conseguenze.
Il problema è che l'ASCII è stato lo standard de facto per molto tempo, nonostante non abbia funzionato bene fuori dagli USA.
La memoria è organizzata come entità a 8 bit, ma ad esempio la comunicazione seriale spesso usava caratteri a 7 bit e quindi i codici al di fuori di 0...127 non potevano essere trasmessi. Notate anche che molte UART supportano ancora caratteri a 5 e 6 bit da codifiche anche più vecchie di ASCII.
Alcuni terminali usavano l'8° bit "disponibile" per altri scopi come caratteri in grassetto o lampeggianti ecc. Inoltre alcune utility controllano che gli argomenti contengano solo caratteri ASCII validi verificando che ogni carattere sia 0...127 o anche 32...127 numerico per i caratteri non di controllo.
Altri paesi hanno adattato l'ASCII per inserire alcuni caratteri nazionali. Aggiungere un 8° bit romperebbe la compatibilità in molti casi, ma alcuni caratteri usati raramente potrebbero essere sostituiti. In Svezia abbiamo sostituito ][ con i caratteri svedesi ÅÄÖ, }{| con åäö e pochi altri. Questo ha funzionato abbastanza bene, tranne per il fatto che l'ordinamento di questi caratteri nazionali li metteva nell'ordine sbagliato.
Il problema dell'ordinamento è rimasto con i set di caratteri a 8 bit (pagine di codice Windows/Mac e standard ISO 8859) poiché la maggior parte dei programmi ordina in ordine di punti di codice. Ci sono molti programmi che accettano caratteri a 8 bit ma gestiscono l'ordinamento in modo scorretto per i caratteri non-ASCII.
Ora che Unicode è diventato lo standard i problemi di codifica dei caratteri alla fine diminuiranno, ma i vecchi software tendono a rimanere in uso per molto tempo.