コマンドを使用しbase64 somefile.ext
てファイルをテキストに変換しようとしています。唯一の問題は、ファイル サイズが 35% 増加し、大きなファイルでは許容できないことです。ファイルをエンコードしてサイズを小さくできるのではないかと考えています。現在、出力ファイルのエンコードは ですus-ascii
。
ファイルサイズを小さくできるエンコード方法はありますか?
答え1
エンコードする前に圧縮するだけです。
$ wc -c < /bin/ls
114024
$ < /bin/ls base64 | wc -c
154033
$ xz < /bin/ls | base64 | wc -c
59878
(gzip、bzip2 など、任意の圧縮形式を使用できますが、受信側で解凍することを忘れないでください)
印刷可能な ASCII 文字はそれほど多くありません。base64 は 64 個の ASCII 文字を使用するため、6 ビットの入力で 8 ビットの出力が生成されます。使用できる文字はこれ以上多くありません。