[Lazarus] LazUtf16.IsUTF16CharValid ok?

AlexeyT aaa5500 at ya.ru
Mon Apr 9 18:44:10 CEST 2018


function IsUTF16CharValid(AChar, ANextChar: WideChar): Boolean;
begin
   if AChar = #0 then Exit(False);
   Result := ((AChar >= #$D800) and (AChar <= #$DBFF)) and not 
((ANextChar >= #$DC00) and (ANextChar <= #$DFFF));
   //Result := (Word(AChar) in [$D800..$DBFF]) and not (Word(ANextChar) 
in [$DC00..$DFFF]); <= generates range check error
   Result := not Result;
end;

maybe better if func also gives True for chars <$D800.

-- 
Regards,
Alexey



More information about the Lazarus mailing list