Spec-Zone.ru › Ruby 2.2

модуль Base64

Модуль Base64 предоставляет кодирование (#encode64, strict_encode64, urlsafe_encode64) и декодирование (#decode64, strict_decode64, urlsafe_decode64) двоичных данных с использованием представления Base64.

Пример

Простое кодирование и декодирование.

require "base64"

enc   = Base64.encode64('Send reinforcements')
                    # -> "U2VuZCByZWluZm9yY2VtZW50cw==\n"
plain = Base64.decode64(enc)
                    # -> "Send reinforcements"

Цель использования base64 для кодирования данных заключается в том, что он преобразует любые двоичные данные в чисто печатные символы.

Методы публичного экземпляра

decode64(str) Показать исходный код
# File lib/base64.rb, line 57
def decode64(str)
  str.unpack("m").first
end

Возвращает декодированную версию Base64 от str. Этот метод соответствует RFC 2045. Символы за пределами базового алфавита игнорируются.

require 'base64'
str = 'VGhpcyBpcyBsaW5lIG9uZQpUaGlzIG' +
      'lzIGxpbmUgdHdvClRoaXMgaXMgbGlu' +
      'ZSB0aHJlZQpBbmQgc28gb24uLi4K'
puts Base64.decode64(str)

Создаёт:

This is line one
This is line two
This is line three
And so on...
encode64(bin) Показать исходный код
# File lib/base64.rb, line 37
def encode64(bin)
  [bin].pack("m")
end

Возвращает закодированную версию Base64 от bin. Этот метод соответствует RFC 2045. Возвращаемые символы делятся на строки по 60 символов.

require 'base64'
Base64.encode64("Now is the time for all good coders\nto learn Ruby")

Создаёт:

Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBjb2RlcnMKdG8gbGVhcm4g
UnVieQ==
strict_decode64(str) Показать исходный код
# File lib/base64.rb, line 72
def strict_decode64(str)
  str.unpack("m0").first
end

Возвращает декодированную версию Base64 от str. Этот метод соответствует RFC 4648. ArgumentError генерируется, если str неверно завершается или содержит неалфавитные символы. Обратите внимание, что CR или LF также отклоняются.

strict_encode64(bin) Показать исходный код
# File lib/base64.rb, line 64
def strict_encode64(bin)
  [bin].pack("m0")
end

Возвращает закодированную версию Base64 от bin. Этот метод соответствует RFC 4648. Строки не добавляются.

urlsafe_decode64(str) Показать исходный код
# File lib/base64.rb, line 88
def urlsafe_decode64(str)
  strict_decode64(str.tr("-_", "+/"))
end

Возвращает декодированную версию Base64 от str. Этот метод соответствует «Кодировке Base 64 с безопасными для URL и имен файлов алфавитами» в RFC 4648. Алфавит использует '-' вместо '+' и '_' вместо '/'.

urlsafe_encode64(bin) Показать исходный код
# File lib/base64.rb, line 80
def urlsafe_encode64(bin)
  strict_encode64(bin).tr("+/", "-_")
end

Возвращает закодированную версию Base64 от bin. Этот метод соответствует «Кодировке Base 64 с безопасными для URL и имен файлов алфавитами» в RFC 4648. Алфавит использует '-' вместо '+' и '_' вместо '/'.

Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API