Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
The Base64 module provides for the encoding (#encode64, strict_encode64, urlsafe_encode64) and decoding (#decode64, strict_decode64, urlsafe_decode64) of binary data using a Base64 representation.
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.
Returns the Base64-decoded version of str
. This method
complies with RFC 2045. Characters outside the base alphabet are ignored.
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 57 def decode64(str) str.unpack("m").first end
Returns the Base64-encoded version of bin
. This method
complies with RFC 2045. Line feeds are added to every 60 encoded
charactors.
require 'base64' Base64.encode64("Now is the time for all good coders\nto learn Ruby")
Generates:
Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g UnVieQ==
# File base64.rb, line 37 def encode64(bin) [bin].pack("m") end
Returns the Base64-decoded version of str
. This method
complies with RFC 4648. ArgumentError is raised if str
is
incorrectly padded or contains non-alphabet characters. Note that CR or LF
are also rejected.
# File base64.rb, line 72 def strict_decode64(str) str.unpack("m0").first end
Returns the Base64-encoded version of bin
. This method
complies with RFC 4648. No line feeds are added.
# File base64.rb, line 64 def strict_encode64(bin) [bin].pack("m0") end
Returns the Base64-decoded version of str
. This method
complies with “Base 64 Encoding with URL and Filename Safe Alphabet” in RFC
4648. The alphabet uses ‘-’ instead of ‘+’ and ‘_’ instead of ‘/’.
# File base64.rb, line 88 def urlsafe_decode64(str) strict_decode64(str.tr("-_", "+/")) end
Returns the Base64-encoded version of bin
. This method
complies with “Base 64 Encoding with URL and Filename Safe Alphabet” in RFC
4648. The alphabet uses ‘-’ instead of ‘+’ and ‘_’ instead of ‘/’.
# File base64.rb, line 80 def urlsafe_encode64(bin) strict_encode64(bin).tr("+/", "-_") end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.