Java strings always store the data using UTF-8.
When moving between a string and a byte array (via stringToBytes or bytesToString) you specify the encoding to use in the byte array. E.g. for stringToBytes you indicate what encoding is desired for the resulting byte array. For the other direction, you specify what encoding the byte array uses so that it can be properly interpreted.
Whether or not a Unicode character has an ASCII equivalent depends upon the specific character and the mapping that Java does for the different encodings.
How are you checking that the “data still looks the same?” Can you provide more detail about the steps you’re performing?