Difference between revisions of "Widestrings/fr"
From Lazarus wiki
Jump to navigationJump to search (Created page with "== 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...") |
m (→Widestring) |
||
Line 2: | Line 2: | ||
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. | 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: | Non-Windows: | ||
− | * (FPC 2.2-, 2.4, 2.6): | + | * (FPC 2.2-, 2.4, 2.6): Pur UTF16 (connu comme les widestring de Kylix). |
Windows: | Windows: | ||
− | * FPC 2.2- | + | * FPC 2.2- Pur UTF16 (connu comme les widestring de Kylix). |
* FPC 2.4+ bytes encodés UTF16 compatible COM (UCS2 sur Windows 2000). | * FPC 2.4+ bytes encodés UTF16 compatible COM (UCS2 sur Windows 2000). | ||
Revision as of 21:00, 9 July 2014
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
Old content
Is this still relevant? --BigChimp 07:59, 23 June 2012 (UTC) the following code from rtl/inc/wstrings.inc is used for assignments between ansistrings and 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;
the procvars are supposed to allow you to replace theese with a converter more suited to the local charset. Unfortunately they do not allow for the "ansi" charset to be multibyte as they assume the number of ansichars in the ansistring will equal the number of widechars in the widestring.