Widestrings/fr
│
English (en) │
français (fr) │
Widestring
Une Widestring contient des données de chaînes mais le contenu de cette chaîne est stockée différemment selon le système d'exploitation et la version de FPC. Non-Windows:
- (FPC 2.2-, 2.4, 2.6): Pur UTF16 (connu comme les widestring de Kylix).
Windows:
- FPC 2.2- Pur UTF16 (connu comme les widestring de Kylix).
- FPC 2.4+ bytes encodés UTF16 compatible COM (UCS2 sur Windows 2000).
Voir Support de l'Unicode par la LCL
Ancien contenu
Est-ce encore pertient? --BigChimp 07:59, 23 June 2012 (UTC) Le code suivant de rtl/inc/wstrings.inc est utilisé pour les affectations entre ansistrings et widestrings.
procedure Wide2AnsiMove(source:pwidechar;dest:pchar;len:SizeInt);
var
i : SizeInt;
begin
for i:=1 to len do
begin
if word(source^)<128 then
dest^:=char(word(source^))
else
dest^:=' ';
inc(dest);
inc(source);
end;
end;
procedure Ansi2WideMove(source:pchar;dest:pwidechar;len:SizeInt);
var
i : SizeInt;
begin
for i:=1 to len do
begin
if byte(source^)<128 then
dest^:=widechar(byte(source^))
else
dest^:=' ';
inc(dest);
inc(source);
end;
end;
Const
Wide2AnsiMoveProc:TWide2AnsiMove=@Wide2AnsiMove;
Ansi2WideMoveProc:TAnsi2WideMove=@Ansi2WideMove;
Les procvars sont soit-disant là pour vous permettre de les remplacer par un convertisseur plus adapté à votre jeu de caractère local. Malheureusement ils ne permettent pas à l'"ansi" d'être du multi-octet et ils supposent que les ansichars dans les ansistring seront égales au nombre de widechars dans la widestring.