Я пытаюсь использовать команду base64 somefile.ext
для преобразования файлов в текст. Единственная проблема в том, что размер файла увеличивается на 35%, и это становится неприемлемым для моих больших файлов. Я подозреваю, что файлы могут быть закодированы таким образом, чтобы уменьшить их размер. В настоящее время кодировка выходного файла us-ascii
.
Есть ли кодировка, позволяющая уменьшить размер файла?
Просто сжимайте перед кодированием.
$ wc -c < /bin/ls
114024
$ < /bin/ls base64 | wc -c
154033
$ xz < /bin/ls | base64 | wc -c
59878
(вы можете использовать, gzip, bzip2 или любой другой компрессор, который хотите, но не забудьте uncompress на принимающей стороне)
Печатных символов ascii не так много. base64 использует 64 из них, что означает, что 6 битов ввода составляют 8 битов вывода. Больше вы можете использовать не так уж много.