In alcuni casi può accelerare l'accesso ai singoli personaggi. Immagina stringa str='ABC'
codificata in UTF8 e in ASCII (e supponendo che il linguaggio / compilatore / database conosca la codifica)
Per accedere al terzo carattere ( C
) da questa stringa usando l'operatore di accesso alla matrice, che è presente in molti linguaggi di programmazione, farebbe qualcosa come c = str[2]
.
Ora, se la stringa è codificata ASCII, tutto ciò che dobbiamo fare è recuperare il terzo byte dalla stringa.
Se, tuttavia, la stringa è codificata in UTF-8, dobbiamo prima controllare se il primo carattere è un char di uno o due byte, quindi dobbiamo eseguire lo stesso controllo sul secondo carattere, e solo allora possiamo accedere al terzo carattere. La differenza di prestazioni sarà maggiore, più lunga sarà la stringa.
Questo è un problema, ad esempio, in alcuni motori di database, in cui trovare l'inizio di una colonna posizionata "dopo" un VARCHAR codificato in UTF-8, il database non deve solo controllare quanti caratteri ci sono nel campo VARCHAR, ma anche quanti byte utilizza ognuno di essi.