Link (./34) :
Normal, les fonctions de longueur ont intéret à travailler sur la longueur "physique", ou tu t'exposes à une mauvaise surprise lors d'une tentative de copie...
Pourquoi crois-tu que _tcslen() redirige sur strlen() et non _mbslen(), même quand _MBCS est défini ?
Par contre, en effet je crois que Windows ne fournit pas de fonction pour compter les caractères unicodes composites et les accents...
D'un autre côté, je ne suis pas sûr que Java le fasse non plus, hein...
Nan, une fonction qui compte les caractères a intérêt à te donner le nombre de caractères. Si tu veux la longueur, y'a une autre fonction pour ça (StringCbLength).
Par ailleurs j'ai pris celle ci comme exemple parce que le plus évident, mais la remarque tient pour l'ensemble des fonctions de gestion de chaîne de l'api Win32.
Et oui, il existe des systèmes qui proposent ça. Déjà Windows le fait (mais pas dans l'api windows, allez comprendre). Qt le fait également, ainsi probablement que Gtk (à vérifier).