Hai una stringa, della stringa prendi i byte. Ogni byte è composto da 8 bit, valori ammessi da -128 a +127. 138 è fuori dal range (in effetti non è ASCII in senso stretto). Anche se fai una promozione a int, in pratica i bit oltre i primi 8 vengono messi a 0 (non cambia quindi il valore ed ecco l'equivalenza).
Se ti interessa stampare i caratteri ad uno ad uno passare dal getBytes non è corretto. Prova a passare per i caratteri.