私はbashシェルでCentOS 7を使用しています。 Base64でバイナリをエンコードするのは簡単だと思いました。
[rails@server lib]$ cat mybinary.file | base64 > /tmp/output.base64
ところでファイル長を見てみると4の倍数ではありませんでしたね。
[rails@server lib]$ ls -al /tmp/output.base64
-rw-rw-r-- 1 rails rails 92935 May 31 15:50 /tmp/output.base64
私がしていることが有効なのかはわかりませんが、JSライブラリを使用してファイルをデコードしようとすると、文字列の長さが4の倍数ではないと文句を言うエラーが発生します。上記の操作が正しいか、他の方法がある場合です。
ベストアンサー1
$ echo foo |base64
Zm9vCg==
$ echo foo |base64 |wc -c
9
出力の末尾の改行文字に注意してくださいbase64
。これはここで9番目の文字です。
長い入力の場合、デフォルトでは76文字ごとに出力をラップするため、2行以上を生成します。base64 -w0
出力を使用またはパイピングして、改行(最終的な改行を含む)を無効にすることができますtr -d '\n'
。