Base64モジュールの留意点
バイナリデータをいろいろな都合で文字列として扱い場合があります。
そんな時は、Base64でのエンコードが便利です。
以下は、Base64エンコード方式への文字列のエンコードとデコードを行う標準モジュールです。
たとえば、$decodedにバイナリデータが入ってるとします。
そのデータをエンコード(encode_base64)した$encodedは、文字列になっています。
元に戻す時は、デコード(decode_base64)します。するとバイナリデータに戻ります。
use MIME::Base64; $encoded = encode_base64($decoded,''); $decoded = decode_base64($encoded);
留意点として、「encode_base64」の第2引数を指定しないとエンコード結果に改行が付加されます。
これを回避するには、第二引数へ「''」をセットすると改行は付加されなくなります。
参考リンク:http://perldoc.jp/docs/modules/MIME-Base64-2.12/Base64.pod
ちなみに、Base64とは
元データを6ビットずつに分割する。
http://d.hatena.ne.jp/chaichanPaPa/20070620/1182345355
6ビットに満たない分は0を追加して6ビットにする。
この6ビットを A〜Z、a〜z、0〜9、+、/ の表示可能コードに4文字ずつ割り振る。
最後が4文字に満たない場合は、 = 記号を追加し4文字にする。