小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

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ビットずつに分割する。
6ビットに満たない分は0を追加して6ビットにする。
この6ビットを A〜Z、a〜z、0〜9、+、/ の表示可能コードに4文字ずつ割り振る。
最後が4文字に満たない場合は、 = 記号を追加し4文字にする。

http://d.hatena.ne.jp/chaichanPaPa/20070620/1182345355