Das normale
Unicode-Desaster hast Du bereits ausgeschlossen? Welche Delphi-Version benutzt Du? Sind Unicodeastrings default?
Du solltest auf jeden Fall alle Strings in Delphi
ansistring machen. Außerdem kann es Probleme geben, wenn Addition und Subtraktion der Schlüsselbytes den Berecih 0..255 verlassen, also auf beiden Seiten (Delphi und Java) sicherheitshalber schreiben
s[i]:=chr(z and $FF);
und
nicht mod 128 in Java (bzw. auch in Delphi schreiben
s[i]:=chr(z and $7F);
(Dann darfst Du Dich allerdings nicht wundern, wenn zB "
Nö, dös göht nicht!" nach dem Ent/Verschlüssel nicht mehr hergestellt werden kann!)
Wenn man das alles sieht, fragt man sich wieder einmal, warum immer wieder Leute auf die Idee kommen, unbedingt mit Strings/Chars rechnen zu wollen?!