Bonjour, savez-vous pourquoi, sur Delphi 2009 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
var
  s : UTF8String;
begin
  s := 'é';
  ShowMessage(format('%d/%d', [sizeof(s[1]), length(s)]);
end;
me retourne "1/1" ?

Plus étonnant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
var
  s : UTF8String;
begin
  s := 'éé';
  ShowMessage(format('%d/%d', [sizeof(s[1]), length(s)]);
end;
affiche "1/4" ! Length est censé être compatible UTF8 dans la version 2009, non ?

Questions corollaires :
Comment savoir avec précision la longueur d'une chaine UTF8 et sa taille en octets (pour stockage et manipulation binaire) ?

Merci