Если вы хотите сохранить значения byte , не используйте Reader вообще, в идеале. Чтобы представить произвольные двоичные данные в тексте и позже преобразовать их в двоичные данные, следует использовать кодировку base16 или base64.
Однако, чтобы объяснить, что происходит, когда вы звоните s.getBytes()
, который использует кодировку по умолчанию , которая, очевидно, не включает в себя символ Unicode U + 00E5.
Если вы звоните s.getBytes("ISO-8859-1")
везде вместо s.getBytes()
Я подозреваю, что вы вернете правильное значение байта ... но полагаться на ISO-8859-1 для этого довольно грязно IMO.