En algunos casos, puede acelerar el acceso a caracteres individuales. Imagine la cadena str='ABC'
codificada en UTF8 y en ASCII (y suponiendo que el idioma / compilador / base de datos sabe acerca de la codificación)
Para acceder al tercer carácter ( C
) de esta cadena mediante el operador de acceso a la matriz, que aparece en muchos lenguajes de programación, haría algo como c = str[2]
.
Ahora, si la cadena está codificada en ASCII, todo lo que tenemos que hacer es recuperar el tercer byte de la cadena.
Si, sin embargo, la cadena está codificada en UTF-8, primero debemos verificar si el primer carácter es de uno o dos bytes, luego debemos realizar la misma verificación en el segundo carácter, y solo entonces podemos acceder al tercer carácter. La diferencia en el rendimiento será mayor cuanto más larga sea la cadena.
Esto es un problema, por ejemplo, en algunos motores de base de datos, donde para encontrar el comienzo de una columna colocada 'después' de un VARCHAR codificado en UTF-8, la base de datos no solo necesita verificar cuántos caracteres hay en el campo VARCHAR, pero también cuántos bytes utiliza cada uno de ellos.