A seconda della codifica, è possibile ottenere dimensioni char
maggiori (8 bit- > 16 bit), sebbene UTF-8 sia in grado di gestire un carattere Unicode con le stesse dimensioni di un carattere ASCII standard. I byte sono codificati e decodificati in Unicode (mentre ASCII non lo è, in quanto ha una relazione 1 a 1 con il valore di byte), dando una penalità di prestazioni minore. Esistono diverse codifiche Unicode, come UTF-8 (8 bit), UTF-16 (16 bit) e UTF-32 (32 bit, non ho mai visto questo in uso).
Ottieni vantaggi, più caratteri. Questo è necessario se vuoi internazionalizzare il tuo programma su una serie di diversi lamguages perché potrebbero usare caratteri diversi da quelli dell'alfabeto inglese. Il poco spazio possibile e il guadagno di prestazioni raramente vale la pena di rimanere in ASCII nel caso in cui la tua lingua abbia incorporato il supporto per Unicode.
Alcuni software potrebbero avere problemi con Unicode, ma questo è tutt'altro che un problema oggi.
Unicode è un superset di ASCII, non perderai caratteri, solo guadagni. Dato che hai più personaggi, dovrai anche gestirne di più. Supponiamo che tu abbia un metodo per convertire una stringa in minuscolo, dovrai gestire molti caratteri diversi se hai usato Unicode invece di ASCII.