Декодировать данные base64, закодированные в bash
Я пытаюсь декодировать некоторые данные, которые я закодировал в bash, используя
base64 -in file.txt -out encodedFile.txt
Декодирование в bash не проблема.
Но когда я пытаюсь декодировать его в Objective-C, используя
//fetch encoded data from file system, put it in
//NSData *encoded
NSData *decoded = [[NSData alloc] initWithBase64EncodedData:encoded withOptions:0];
Я всегда получаю ноль.
ИЗМЕНИТЬ
Я пробовал кодировать тот же файл в Objective-C и заметил, что есть только одна небольшая разница:
Закодировано в bash:
dGhpcyBpcyBhIHRlc3Qh
Закодировано в Objective-C:
VGhpcyBpcyBhIHRlc3Qh
Только первый символ отличается.
Ответы
Ответ 1
Я понял это.
По-видимому, в конец файла добавлена новая строка (\n
).
Как только я удалил это, он работал нормально.
Для тех, кто заинтересован, мне удалось сделать это с помощью команды
base64 -i file.txt | tr -d '\n' > encodedFile.txt