学习Base64编码

Base64是一种编码方法, 它只使用ASCII码中的65个字符(包括[A-Za-z0-9+/]这64字符和用来padding的'='),且最多只会在末尾出现两个'='。将3个8位字节(8bits * 3 = 24bits)中的二进制代码转为4个6位的字节(6bits * 4 = 24bits),之后在6位的前面补两个0,形成8位一个字节的形式。具体详情参考这里。被base64编码过的字符串。每隔60个8位字节(或在结尾)添加一个换行代码。
Ruby的Array类中的pack('m'),unpack('m')方法就是用来干这个的,分别对应编码,解码.
顺便提一下,Rails中将图片等存入数据库中时,需要使用pack('m')方法,将其转换为数据库能够接受的Base64编码方式.比如可以这样来实现.

module ToBaseData
def self.load(filename)
data = File.open(filename, 'rb').read
"!binary | #{[data].pack('m').gsub(/\n/, "\n ")}\n"
end
end