Molto presto il lavoro è stato fatto con i codici baudot a 5 bit, ma questi sono diventati rapidamente limitanti (solo 32 possibili caratteri, quindi fondamentalmente solo lettere maiuscole e un pochi segni di punteggiatura , ma non abbastanza "spazio" per le cifre).
Da lì, alcune macchine sono passate a caratteri a 6 bit. Questo era ancora piuttosto inadeguato - se si desiderava lettere e cifre maiuscole e minuscole (inglese), questo lasciava solo due caratteri in più per la punteggiatura, quindi la maggior parte aveva ancora un solo caso di lettere in un set di caratteri.
ASCII ha definito un set di caratteri a 7 bit. È stato "abbastanza buono" per molti usi per molto tempo e ha costituito la base anche per i set di caratteri più recenti (ISO 646, ISO 8859, Unicode, ISO 10646, ecc.)
I computer binari motivano i progettisti a realizzare potenze di due dimensioni. Dal momento che il set di caratteri "standard" richiedeva comunque 7 bit, non era troppo lungo aggiungere un altro bit per ottenere una potenza di 2 (e quindi lo storage stava diventando abbastanza più economico da "sprecare" un po 'per la maggior parte dei personaggi era più accettabile pure.
Da allora, i set di caratteri sono passati a 16 e 32 bit, ma la maggior parte dei computer tradizionali sono in gran parte basati sul PC IBM originale (un progetto che avrà 30 anni nei prossimi mesi ). Quindi, ancora una volta, il mercato è sufficientemente soddisfatto di caratteri a 8 bit che, anche se il PC non fosse arrivato al suo attuale livello di dominanza, non sono sicuro che tutti farebbero comunque tutto con personaggi più grandi.
Devo anche aggiungere che il mercato è cambiato parecchio. Nel mercato attuale, le dimensioni dei caratteri sono definite meno dall'hardware che dal software. Windows, Java, ecc., Spostati a caratteri a 16 bit molto tempo fa.
Ora, l'ostacolo nel supportare i caratteri a 16 o 32 bit è solo minimamente derivante dalle difficoltà inerenti ai caratteri a 16 o 32 bit stessi, e in gran parte dalla difficoltà di supportare i18n in generale. In ASCII (ad esempio) rilevare se una lettera è maiuscola o minuscola, o la conversione tra i due, è incredibilmente banale. In pieno Unicode / ISO 10646, è fondamentalmente indescrivibilmente complesso (al punto che gli standard non ci provano nemmeno - danno tabelle, non descrizioni). Poi aggiungi il fatto che per alcune lingue / set di caratteri, anche la idea di base maiuscola / minuscola non si applica. Poi aggiungi il fatto che persino la visualizzazione di caratteri in alcuni di questi è ancora molto più complessa.
È tutto abbastanza complesso che la stragrande maggioranza del software non ci prova nemmeno. La situazione sta lentamente migliorando, ma lentamente è la parola chiave.