Voir le flux RSS

Roland Chastain

Supprimer les accents d'une chaîne

Noter ce billet
par , 30/12/2018 à 16h10 (202 Affichages)
Un exemple de code intéressant pour comprendre les problèmes relatifs à l'encodage. Merci Thierry !

Un coup d'œil sur la page suivante peut être utile.

UTF-8 Basic Latin

Citation Envoyé par ThWilliam Voir le message
Bonjour,

Voici la fonction que j'utilise (posté dans sources/tri stringlist)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function RemoveAccent(S: string): string;
{remplacement des caractères accentués dans la table UTF8 LATIN BASIC}
{En UTF8, les caractères accentués sont codés sur 2 octets :
   le premier = $C3
   le deuxième : de $80 à $BF }

var
  i: integer;
  ch: char;
begin
   if Length(S) = 0 then
   begin
      Result:= S;
      Exit;
   end;
   i:= 1;
   repeat
      if byte(S[i]) = $C3 then
      begin
        ch:= #0;
        case byte(S[i+1]) of
          $80..$86 : ch:= 'A';
          $87      : ch:= 'C';
          $88..$8B : ch:= 'E';
          $8C..$8F : ch:= 'I';
          $92..$96 : ch:= 'O';
          $98      : ch:= 'O';
          $99..$9C : ch:= 'U';
          $9D      : ch:= 'Y';
          $A0..$A6 : ch:= 'a';
          $A7      : ch:= 'c';
          $A8..$AB : ch:= 'e';
          $AC..$AF : ch:= 'i';
          $B2..$B6 : ch:= 'o';
          $B8      : ch:= '0';
          $B9..$BC : ch:= 'u';
          $BD, $BF : ch:= 'y';
        end;
        if ch <> #0 then
        begin
          Delete(S,i,1); // effacement du premier octet
          S[i]:= ch;     // remplacement du 2° octet
        end;
      end;
      Inc(i);
   until i > length(s);
   Result:= S;
end;
Cordialement
Thierry

Envoyer le billet « Supprimer les accents d'une chaîne » dans le blog Viadeo Envoyer le billet « Supprimer les accents d'une chaîne » dans le blog Twitter Envoyer le billet « Supprimer les accents d'une chaîne » dans le blog Google Envoyer le billet « Supprimer les accents d'une chaîne » dans le blog Facebook Envoyer le billet « Supprimer les accents d'une chaîne » dans le blog Digg Envoyer le billet « Supprimer les accents d'une chaîne » dans le blog Delicious Envoyer le billet « Supprimer les accents d'une chaîne » dans le blog MySpace Envoyer le billet « Supprimer les accents d'une chaîne » dans le blog Yahoo

Commentaires