Widestrings/fr
From Free Pascal wiki
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.