ROT13を計算するこの関数があります。
string function rot13(required string inString) output="false" {
var j = 0;
var k = 0;
var out = "";
for (var i = 1; i <= Len(arguments.inString); i++){
j = asc(Mid(arguments.inString, i, 1));
if(j >= asc("A") && j <= asc("Z")) {
j = ((j - 52) % 26) + asc("A");
}
else if(j >= asc("a") && j <= asc("z")) {
j = ((j - 84) % 26) + asc("a");
}
out &= Chr(j);
} // end for
return out;
}
52、26、84 の 3 つのマジック ナンバーがあるように見えるのが気に入らない。asc("Z") - asc("A") + 1
しかし、52 と 84 が何を表しているのかわかりません。私は彼らに何と名前を付けるかわかりません。