Ниже функцией является основным дешифрования рутиной из унаследованного приложения, написанного на Delphi 2007.Функция возвращает различные результаты
function TMainFrm.DecodePsw(Passw : String) : String;
var
i : Integer;
ss : String;
Begin
ss := Passw;
for i:=1 to Length(ss) do begin
ss[i] := Chr(Ord(ss[i]) - i*21 + 15);
end;
Result := ss;
end;
На некоторых клиентских компьютерах она возвращает другой результат с теми же входными данными, что может быть возможные причины этого?
Я подозревал местонахождение, однако, посмотрев в настройках Windows, я мог найти только туманную ссылку для локали системы в разделе Region -> Administrative -> Change System Locale ... Я сравнил эти настройки с другим компьютером, работающим на том же сайте и он был идентичен. Вы конкретно упомянули строки ANSI в приведенном выше ответе, из-за Delphi 2007, означает ли это, что это не будет проблемой для Unicode? –
Вы уверены? Это Delphi 2007, а Chr/Ord - просто простые ролики. В 2007 году не было понятия о строковых локалях. – gabr
@gabr как байтовые массивы, это правда. Но поскольку текст, отображаемый на экране, говорит, что значение языкового стандарта –