Bonjour,

voici un programme d'exemple :
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
Const
    tmp1 : WideString = 'coucoué' ;
    tmp2 : String = 'coucoue' ;
    tmp3 : UTF8String = 'coucoué' ;
    tmp4 : WideString = 'é' ;
 
var car : WideChar ;
    car1 : AnsiString ;
 
begin
    car := tmp4[1] ; // #195 au lieu de é
 
    writeln(car1) ; 
 
    writeln(IntToStr(pos(tmp4, tmp1))) ; // 7
 
    writeln('WideChar = ' + IntToStr(SizeOf(WideChar))) ; // 2
    writeln('WideString = ' + IntToStr(Length(tmp1))) ; // 8 au lieu de 7
    writeln('String = ' + IntToStr(Length(tmp2))) ; // 7
    writeln('Utf8String = ' + IntToStr(Length(tmp3))) ; // 8 au lieu de 7
 
    readln() ;
end.
Le problème est que je souhaite récupérer le caractère 'é' mais il me renvoi #195 !!!!!
De plus, Length() me renvoie 8 au lieu de 7 car il ne tient pas compte du type de string.

Avez-vous une idée ?
J'ai pensé à faire un Copy mais même problème.

Savez-vous comment faire pour palier à c'est deux problèmes. Surtout que pos() lui fonctionne.

Je travaille avec FPC 2.2.2.

Question subsidiaire, quelle différence entre WideString et Utf8String ?

Merci