Dann scheint mir ein kritscher Teil im Javacode zu sein:
Da delta ja auch einmal größer als z sein kann, ist das Ergebnis dann wohl negativ. Versuch doch mal
(Auf aus Delphiseite würde ein
chr(z and 255) die Klarkeit verbessern.)
Ansonsten ist es sinnvoll, einmal alle einzelnen Zeichen vor und nach der Kodierung dezimal oder hex auszugeben; dann sollte relativ schnell erkennbar sein, was schiefläuft.