Em alguns casos, pode acelerar o acesso a caracteres individuais. Imagine a string str='ABC'
codificada em UTF8 e em ASCII (e assumindo que a linguagem / compilador / banco de dados sabe sobre codificação)
Para acessar o terceiro caractere ( C
) desta string usando o operador de acesso à matriz, que é apresentado em muitas linguagens de programação, você faria algo como c = str[2]
.
Agora, se a string for codificada em ASCII, tudo o que precisamos fazer é buscar o terceiro byte da string.
Se, no entanto, a string for codificada em UTF-8, devemos primeiro verificar se o primeiro caractere é um caracter de um ou dois bytes, então precisamos realizar a mesma verificação no segundo caractere e só então poderemos acessar o terceiro caractere. A diferença no desempenho será maior, quanto maior a string.
Este é um problema, por exemplo, em alguns mecanismos de banco de dados, onde para localizar um início de uma coluna colocada após um VARCHAR codificado em UTF-8, o banco de dados não precisa apenas verificar quantos caracteres existem no campo VARCHAR. mas também quantos bytes cada um deles usa.