• [^] # Re: UTF-8 est auto-synchronisant

    Posté par . En réponse à la dépêche Sortie de Gambas 3.3. Évalué à 2.

    C'est vrai que c'est un véritable avantage quand tu veux retrouver le 6054ème caractère de savoir qu'il est entre les 6054ème et 36324 octets.

    C'est un argument souvent avancé contre UTF8 mais comme le dis Robert O'Callahan[1], quels sont les cas d'utilisation réels d'accès aléatoire à un caractère donné ? Le plus souvent, les algos de recherche sont plutôt itératifs (recherche de sous chaînes). On a pris l'habitude de manipuler des chaînes comme des tableaux (héritage du C) même pour des accès séquentiels. Combien de fois écrit-on :
    for (i = 0; i < n; i++)
    do_something(str[i]);

    On se fout un peu du i en question. On balaye la chaîne. C'était juste le seul moyen d'écrire ça en C vu qu'il n'y a pas d'itérateur/foreach.

    [1] http://robert.ocallahan.org/2008/01/string-theory_08.html