1
以下の機能がどのように可能性があり、それは同じ入力データと異なる結果を返しますデルファイ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の設定を見てみたら、リージョン - >管理 - >システムロケールの変更でシステムロケールの曖昧な参照しか見つけられませんでした...これらの設定を同じサイトそれは同じだった。 上記の答えでANSI文字列を特に言及していますが、これはDelphi 2007のためにUnicodeで問題にならないということですか? –
本当ですか?これはDelphi 2007で、Chr/Ordは単純なキャストです。 2007年には文字列ロケールという概念はなかった。 – gabr
@gabrが真であるバイト配列です。しかし、画面上に表示されるテキストのように、ロケールの問題 –