Вы base64 кодируете строку ? Что вы хотите от этого? Сначала нужно преобразовать строку в последовательность байтов, выбрав кодировку, например UTF-8 или UTF-16.
Полагаю, вам удалось использовать разные кодировки с обеих сторон. Java String.GetBytes()
использует кодировку по умолчанию (вероятно, что-то вроде Latin1 в западных версиях Windows). Для C # вы не опубликовали соответствующий код.
Чтобы исправить это, выберите кодировку и используйте ее явно с обеих сторон. Я рекомендую использовать UTF-8
.
На стороне Java вы должны использовать правильный метод для кодирования, так что вы не получите «модифицированный UTF-8», но, поскольку я не программист Java, я не знаю, какие методы выводят модифицированный UTF-8 , Я думаю это происходит только в том случае, если вы используете какой-то внутренний метод сериализации.
байты со знаком и без знака здесь не должны быть релевантными. Промежуточный буфер байтов будет другим, но исходная строка и строка base64 должны быть идентичны с обеих сторон.