function CharLength(const S: string; Index: Integer): Integer; begin Result := 1; assert((Index > 0) and (Index <= Length(S))); if SysLocale.FarEast and (S[Index] in LeadBytes) then Result := StrCharLength(PChar(S) + Index - 1); end;