| Module | Base64 |
| In: |
base64.rb
|
The Base64 module provides for the encoding (encode64) and decoding (decode64) of binary data using a Base64 representation.
The following particular features are also provided:
A simple encoding and decoding.
require "base64"
enc = Base64.encode64('Send reinforcements')
# -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
plain = Base64.decode64(enc)
# -> "Send reinforcements"
The purpose of using base64 to encode data is that it translates any binary data into purely printable characters. It is specified in RFC 2045 (www.faqs.org/rfcs/rfc2045.html).
Prints the Base64 encoded version of bin (a String) in lines of len (default 60) characters.
require 'base64' data = "Now is the time for all good coders\nto learn Ruby" Base64.b64encode(data)
Generates:
Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g UnVieQ==
# File base64.rb, line 112 def b64encode(bin, len = 60) encode64(bin).scan(/.{1,#{len}}/) do print $&, "\n" end end
Returns the Base64-decoded version of str.
require 'base64'
str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
puts Base64.decode64(str)
Generates:
This is line one This is line two This is line three And so on...
# File base64.rb, line 58 def decode64(str) str.unpack("m")[0] end
Decodes text formatted using a subset of RFC2047 (the one used for mime-encoding mail headers).
Only supports an encoding type of ‘b’ (base 64), and only supports the character sets ISO-2022-JP and SHIFT_JIS (so the only two encoded word sequences recognized are =?ISO-2022-JP?B?…= and =?SHIFT_JIS?B?…=). Recognition of these sequences is case insensitive.
# File base64.rb, line 72 def decode_b(str) str.gsub!(/=\?ISO-2022-JP\?B\?([!->@-~]+)\?=/i) { decode64($1) } str = Kconv::toeuc(str) str.gsub!(/=\?SHIFT_JIS\?B\?([!->@-~]+)\?=/i) { decode64($1) } str = Kconv::toeuc(str) str.gsub!(/\n/, ' ') str.gsub!(/\0/, '') str end
ruby-doc.org is hosted and maintained by James Britt and Happy Camper Studios, a Ruby application development company in Phoenix, Arizona. The site was created in 2002 as part of the Ruby Documentation Project to promote the Ruby language and to help other Ruby hackers.
Documentation content on ruby-doc.org is provided by remarkable members of the Ruby community.
For more information on the Ruby programming language, visit ruby-lang.org.
Want to help improve Ruby's API docs? See Ruby Documentation Guidelines.