La tabella ASCII (American Standard Code for Information Interchange) venne creata attorno al 1963 in America, e stabilisce una matrice (inizialmente a 7 bit - cioè ogni elemento è rappresentato da un numero binario a 7 cifre, da 0000000 a 1111111 per un totale di 128 elementi) dove a ciascun valore binario viene fatta corrispondere una lettera (maiuscola o minuscola), un numero o un simbolo con lo scopo di creare un sistema unificato per lo scambio di informazioni tra il linguaggio degli elaboratori (capaci di interpretare solo stringhe binarie) e quello degli esseri umani (sotto forma di linguaggio scritto). Le prime 32 posizioni sono occupate da caratteri non stampabili, come l'"a capo" (13 - CR - Carriage Return) o la "fine della trasmissione" (7 - EOT - End of Trasmission) o più banalmente lo "spazio" (32 - Space).

Tabella 1: tabella ASCII base

00000000 0 NUL
00000001 1 SOH
00000010 2 STX
00000011 3 ETX
00000100 4 EOT
00000101 5 ENQ
00000110 6 ACK
00000111 7 BEL
00001000 8 BS
00001001 9 HT
00001010 10 LF
00001011 11 VT
00001100 12 FF
00001101 13 CR
00001110 14 SO
00001111 15 SI
00010000 16 DLE
00010001 17 DC1
00010010 18 DC2
00010011 19 DC3
00010100 20 DC4
00010101 21 NAK
00010110 22 SYN
00010111 23 ETB
00011000 24 CAN
00011001 25 EM
00011010 26 SUB
00011011 27 ESC
00011100 28 FS
00011101 29 GS
00011110 30 RS
00011111 31 US
00100000 32 SPACE
00100001 33 !
00100010 34 "
00100011 35 #
00100100 36 $
00100101 37 %
00100110 38 &
00100111 39 '
00101000 40 (
00101001 41 )
00101010 42 *
00101011 43 +
00101100 44 ,
00101101 45 -
00101110 46 .
00101111 47 /
00110000 48 0
00110001 49 1
00110010 50 2
00110011 51 3
00110100 52 4
00110101 53 5
00110110 54 6
00110111 55 7
00111000 56 8
00111001 57 9
00111010 58 :
00111011 59 ;
00111100 60 <
00111101 61 =
00111110 62 >
00111111 63 ?
01000000 64 @
01000001 65 A
01000010 66 B
01000011 67 C
01000100 68 D
01000101 69 E
01000110 70 F
01000111 71 G
01001000 72 H
01001001 73 I
01001010 74 J
01001011 75 K
01001100 76 L
01001101 77 M
01001110 78 N
01001111 79 O
01010000 80 P
01010001 81 Q
01010010 82 R
01010011 83 S
01010100 84 T
01010101 85 U
01010110 86 V
01010111 87 W
01011000 88 X
01011001 89 Y
01011010 90 Z
01011011 91 [
01011100 92 \
01011101 93 ]
01011110 94 ^
01011111 95 _
01100000 96 `
01100001 97 a
01100010 98 b
01100011 99 c
01100100 100 d
01100101 101 e
01100110 102 f
01100111 103 g
01101000 104 h
01101001 105 i
01101010 106 j
01101011 107 k
01101100 108 l
01101101 109 m
01101110 110 n
01101111 111 o
01110000 112 p
01110001 113 q
01110010 114 r
01110011 115 s
01110100 116 t
01110101 117 u
01110110 118 v
01110111 119 w
01111000 120 x
01111001 121 y
01111010 122 z
01111011 123 {
01111100 124 |
01111101 125 }
01111110 126 ~
01111111 127 DEL

Ovviamente questa tabella, più che sufficiente in terra americana, risulta assolutamente limitata in Europa, dove oltre alle lettere accentate, esistono altri alfabeti, come per esempio il cirillico, l'ebraico, il greco o l'arabo. Per questo motivo la tabella venne 'estesa' a 8 bit (come i codici binari nella tabella sopra), aggiungendo altri 128 caratteri, variabili a seconda della localizzazione: quindi, per esempio, nell'Europa centro occidentale conteneva le lettere accentate, in quella dell'est il cirillico, in Grecia il greco moderno. Dato che il valore binario era lo stesso, i documenti però venivano (e vengono) formattati a schermo in modo diverso a seconda dell'area geografica per cui era settato il pc. Facciamo un esempio pratico: alla posizione 133 della tabella estesa corrisponde per il latino occidentale la lettera à, ma per il greco ΰ ed per il cirillico р . Ora, il modo in cui il mio computer visualizzerà questo elemento dipende dalle impostazioni locali, perciò in linea di massima lo stesso documento apparirà con lettere completamente diverse a seconda della tabella ASCII estesa in uso in una particolare area geografica. Per avere un'idea delle sole tabelle iso-8859 (nome delle tabelle ASCII estese unificate specifiche per le areee con scrittura latina occidentale) si può fare riferimento a questo sito in inglese. Negli schemi presentati le posizioni sono espresse con il valore esadecimale corrispondente al numero binario. L'iso-8859 è solo una delle possibili codifiche adottate: i font creati per i vari sistemi operativi seguono solo in parte queste specifiche. I caratteri DOS e Windows, per esempio, hanno delle leggere differenze, mentre quelli per Macintosh usano una tabella ancora diversa (vedi questi esempi), per cui anche nell'ambito della scrittura occidentale potrebbe esserci una corrispondenza non completa passando da un elaboratore all'altro. La prima soluzione proposta per risolvere il problema dell'internazionalità fu quella di incorporare più codifiche (code page) nello stesso font, le une alternative alle altre. Il programma di videoscrittura aveva (e in molti casi ha ancora) la possibilità di specificare per un intero documento (o nel caso di programmi più complessi anche prima di ciascuna parola o frase) quale codifica doveva essere utilizzata nella visualizzazione del testo. 
Queste soluzioni, oltre ad essere parziali,  non sono in grado di codificare il numero di caratteri necessari per le lingue orientali, come per esempio cinese o giapponese, che possono avere più di 2000 simboli diversi. Per fare fronte a questa situazione dagli anni '90 si è iniziato a proporre un sistema di codifica non più a 1 byte (8 bit = 1 byte = 256 possibili valori) ma a 2, ampliando quindi il numero dei diversi simboli a più di 65000. Si tratta del sistema Unicode, il cui scopo è quello di assegnare a ciascun simbolo sempre lo stesso valore, generalmente espresso in esadecimale tra 0000 e FFFF. I simboli sono raggruppati in vari set che corrispondono in parte ai vari code page e set estesi preesistenti, cui sono stati aggiunti i caratteri orientali, notazioni musicali, simboli matematici e molto altro. Non tutte le posizioni sono attualmente occupate, dato che la creazione di set è un'operazione ancora in progresso. I font creati seguendo le specifiche unicode possono contenere uno o più di questi set di caratteri (fino a contenerli tutti come nel caso del mastodontico Arial MS unicode - arialuni.ttf) e sono attualmente utilizzabili sulla maggioranza dei sistemi operativi: Windows a partire dal 98, Macitosh dal OS 8.5, Unix e derivati con le opportune estensioni. Questo significa che, passando un file da un sistema operativo all'altro, o da una regione geografica all'altra, anche se non possiedo lo stesso font utilizzato nella versione originale, potrò sempre sostituirlo con un altro font unicode in cui sia presente lo stesso set di caratteri senza che il mio documento perda di leggibilità. Uno dei vantaggi ulteriori è che questo tipo di informazione si può applicare tra l'altro anche alle pagine web, permettendoci di far visualizzare pagine con caratteri greci in modo uguale in tutto il mondo (ma anche, più banalmente, le lettere accentate negli Stati Uniti).