У меня есть следующая проблема: Внутри программы Java я закодировать строку в формат base64:GNU Octave - base64_decode/base64_encode
package my;
import java.util.Base64;
public class base64 {
public static void main(String[] args) {
// check for an input
if(args.length > 0)
{
Base64.Encoder encoder = java.util.Base64.getEncoder();
for(int i = 0; i< args.length; ++i)
{
String encoded = encoder.encodeToString(args[i].getBytes());
System.out.println(encoded);
}
}
}
}
Строка ...
firstname lastname<$!$>[email protected]<$!$>message
. .. результаты:
Zmlyc3RuYW1lIGxhc3RuYW1lPCQhJD5lbWFpbEBkb21haW4udGxkPCQhJD5tZXNzYWdl
Это похоже на работу. Но если я хочу, чтобы расшифровать эту base64-строку обратно в нормальную строку в GNU Octave со следующей программой:
b64encoded = "Zmlyc3RuYW1lIGxhc3RuYW1lPCQhJD5lbWFpbEBkb21haW4udGxkPCQhJD5tZXNzYWdl";
decoded = base64_decode(b64encoded);
%output the type and the string
disp(typeinfo(decoded));
disp(["decoded : " decoded]);
... Я в конечном итоге с одним из следующих сообщений об ошибке каждый раз.
error: base64_decode: incorrect input size
или
error: base64_decode: input was not valid base64
Как это не работает я пытался кодировать данную строку с Октава, но это не работает, потому что я не понимаю, как преобразовать строку в массив тип, который base64_encode хочет иметь в качестве входа. После этого я googled вокруг в течение 2 дней, читая множество сообщений, документ, а также попытался понять базовую c-версию Octaves base64_encode и base64_decode, но это также мне не помогло.
Так что мои основные вопросы:
- Что моя misstake с функцией октав декодирования?
- Как кодировать строку anoctave для base64?
Спасибо заранее,
nioerd
Результат base64 кодера Java просто отлично, ты можно проверить на https://www.base64decode.org/ (и https://www.base64encode.org/). Так что ваш вопрос действительно не о Java, а только о Gnu Octave –