Estou tentando usar o comando base64 somefile.ext
para converter arquivos em texto. O único problema é que o tamanho do arquivo aumenta em 35%, e isso se torna inaceitável para meus arquivos maiores. Suspeito que os arquivos possam ser codificados de uma forma que diminua seu tamanho. Atualmente a codificação do arquivo gerado é us-ascii
.
Existe uma codificação que reduziria o tamanho do arquivo?
Responder1
Basta compactar antes de codificar.
$ wc -c < /bin/ls
114024
$ < /bin/ls base64 | wc -c
154033
$ xz < /bin/ls | base64 | wc -c
59878
(você pode usar gzip, bzip2 ou qualquer compressor que desejar, mas lembre-se de descompactar no lado receptor)
Não existem muitos caracteres ASCII imprimíveis. base64 usa 64 deles, o que significa que 6 bits de entrada geram 8 bits de saída. Não há muitos mais que você possa usar.