Base64は、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。
電子メールのSubjectをデコードしてみる。
Subject: =?ISO_2022_JP?B?GyRCRFQbKEIgGyRCPz9AaCROIVhAbzlxO2I7UkVBGyhCIBskQkh0GyhC?= =?ISO_2022_JP?B?GyRCTjVKVBsoQiAoGyRCJWwlIiVfJS8lORsoQiAbJEIlMyVfJUMbKEI=?= =?ISO_2022_JP?B?GyRCJS8lORsoQikbJEIhWSEiGyhCQW1hem9uLmM=?= =?ISO_2022_JP?B?by5qcBskQiRHJCo1YSRhJCQkPyRAJDEkXiQ5GyhC?=
[tigerii@fedora ~]$ python Python 2.7.1 (r271:86832, Apr 12 2011, 16:16:18) [GCC 4.6.0 20110331 (Red Hat 4.6.0-2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import base64 >>> print base64.b64decode('GyRCRFQbKEIgGyRCPz9AaCROIVhAbzlxO2I7UkVBGyhCIBskQkh0GyhC') 辻 真先の『戦国獅子伝 飛 >>> print base64.b64decode('GyRCTjVKVBsoQiAoGyRCJWwlIiVfJS8lORsoQiAbJEIlMyVfJUMbKEI=') 竜編 (レアミクス コミッ >>> print base64.b64decode('GyRCJS8lORsoQikbJEIhWSEiGyhCQW1hem9uLmM=') クス)』、Amazon.c >>> print base64.b64decode('by5qcBskQiRHJCo1YSRhJCQkPyRAJDEkXiQ5GyhC') o.jpでお求めいただけます >>>
rubyで
[tigerii@fedora ~]$ irb irb(main):001:0> require 'base64' => true irb(main):002:0> puts Base64.decode64('GyRCRFQbKEIgGyRCPz9AaCROIVhAbzlxO2I7UkVBGyhCIBskQkh0GyhC') 辻 真先の『戦国獅子伝 飛 => nil irb(main):003:0> puts Base64.decode64('GyRCTjVKVBsoQiAoGyRCJWwlIiVfJS8lORsoQiAbJEIlMyVfJUMbKEI=') 竜編 (レアミクス コミッ => nil irb(main):004:0> puts Base64.decode64('GyRCJS8lORsoQikbJEIhWSEiGyhCQW1hem9uLmM=') クス)』、Amazon.c => nil irb(main):005:0> puts Base64.decode64('by5qcBskQiRHJCo1YSRhJCQkPyRAJDEkXiQ5GyhC') o.jpでお求めいただけます => nil irb(main):006:0>
参照したURL:
http://www.atmarkit.co.jp/fnetwork/rensai/netpro03/netpro01.html