Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2018-04

LazUtf16.IsUTF16CharValid ok?

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

AlexeyT
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

Reply by email